感谢所有帮助过我的人 继续上传我的C语言作业请大家批评
从键盘读入5个成绩到一个数组中,求其中的最大值,最小值和平均成绩。在屏幕上显示输入成绩的提示信息,用键盘输入一个成绩,接着提示输入下一个,直到结束。程序代码:
#include<stdio.h> #include<math.h> #define N 5 #ifndef FSMLALL #define FSMLALL 0.000001 #endif int main(void) { int i = 0; float scores[N] = {0.0}; float max = 0.0; float min = 3e38; float average = 0.0; printf("Please input %d score(s):\n",N); for (i=0; i<N; i++) { printf("Please input No.%d score(s):",i+1); scanf("%f",(scores+i)); if ((scores[i]-max)>FSMLALL) /* scores[i] > max */ { max = scores[i]; } if ((min-scores[i])>FSMLALL) /* min < scores[i] */ { min = scores[i]; } average += scores[i]; } average /= N; /* sample may be wrong. */ printf("Max is %f,Min is %f,Average is %f",max,min,average); return 0; }
找出数组中的最小数和次小数,并把最小数和a[0]中的数对调、次小数和a[1]中的数对调,其余数据位置不变。
例如,程序运行时若输入:2 4 6 11 3 9 7 0 5 8,则输出:0 2 6 11 3 9 7 4 5 8。
程序代码:
#include<stdio.h> #define N 10 int main(void) { int a[N] = {0}; int i = 0; int i_min = 0; for (i=0; i<N; i++) { scanf("%d",a+i); /* 编写程序,实现功能 */ if (a[i] < a[i_min]) { i_min = i; } } if (0 != i_min) { /* a trick to exchange 2 int */ a[0] ^= a[i_min]; a[i_min] ^= a[0]; a[0] ^= a[i_min]; } /* if there are 2 min nums a[0] and a[1] will be equal */ i_min = 1; for (i=1; i<N; i++) { if (a[i] < a[i_min]) { i_min = i; } } if (1 != i_min) { a[1] ^= a[i_min]; a[i_min] ^= a[1]; a[1] ^= a[i_min]; } for (i=0; i<N; i++) { printf("%d ",a[i]); } printf("\n"); return 0; }
编写程序从键盘上输入一个字符串和一个字符,统计所指定字符的个数。
例如:从键盘输入字符串为"abaaAAbcaaaca",指定字符为'a',则在屏幕上输出结果是7。
程序代码:
#include<stdio.h> #include<string.h> #define N 200 int main(void) { char a[N] = {'\0'}; char b = '\0'; int num = 0; int i = 0; printf("Please input a string,max length is %d:",N); gets(a); printf("Please enter a character:"); b=getchar(); /* 编写程序,实现功能 */ for (; i<N&&a[i]!='0'; i++) { if (a[i] == b) { num++; } } printf("The result is %d\n",num); return 0; }
某个单位要传递机密数据,数据是10位以内的整数(从键盘输入)。在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用该和除以10的余数代替该数字。在屏幕上显示加密后的数字。
例如:输入数据 327895123,
显示结果为 : 872340678。
程序代码:
#include<stdio.h> #define N 10 int main(void) { char a[N] = {'\0'}; int i = 0; scanf("%s",a); for (; i<10&&a[i]!='\0'; i++) { if (a[i]<'0'||a[i]>'9') { printf("\nInput may be wrong.\n"); return -1; } /* a[i] -= '0'; a[i] += 5; a[i] %= 10; a[i] += '0'; */ putchar((((a[i]-'0')+5)%10)+'0'); } return 0; }