这不是占坑,这不是占坑,这不是占坑,重要的事要说三遍!!!!
1.输入若干名学生的成绩(输入人数或用负数结束均可),求其平均分,最高分和最低分,并指出最高分和最低分的学生(给出下标即可),输入一个成绩,说明是第几个学生的成绩。
#include<stdio.h> #define N 100 int main() { int score[N],i,n,n1=0,n2=0,sum=0,max,min,n3,n4; double average; printf("请输入人数: "); scanf("%d",&n); for(i=0;i<n;i++) { printf("请输入成绩: "); scanf("%d",&score[i]); if(score[i]==-1) { break; } else if(score[i]!=-1) { n4++; sum=sum+score[i]; } } average=(double)sum/n; printf("平均数为%.2f ",average); /*平均数*/ max=score[0]; for(i=0;i<n;i++) { if(score[i]>max) { max=score[i]; /*最大值*/ n1=i; } } printf("最大分数的学生为%d ",n1+1); min=score[1]; for(i=0;i<n;i++) { if(score[i]<min) { min=score[i]; /*最小值*/ n2=i; } } printf("最低分数的学生为%d ",n2+1); printf("输入一个分数: "); scanf("%d",&n3); for(i=0;i<n;i++) { if(score[i]==n3) { printf("%d号得到这个分数 ",i+1); break; } } return 0; }
2.现有一个有序正整数数组(从小到大排序),输入一个数,插入到数组中,要求插入后的数组仍然有序。对插入到最前、最后、中间位置三种情况进行验证。
#include<stdio.h> #define N 10 int main() { int a,b,c,d,i;/*0 1 2 3 4 5 6 7 8 9=0*/ int shuzu[N]={1,3,5,7,9,11,13,15,17}; printf("请输入一个数字,将插入到1,3,5,7,9,11,13,15,17里: "); scanf("%d",&a); for(i=0;i<N;i++) { if(a<=shuzu[i]) { d=i; printf("插入到第%d位 ",d); break; } } for(i=d,c=N-1;i<=c;c--) { shuzu[c]=shuzu[c-1]; } shuzu[d]=a; for(i=0;i<N;i++) { printf("%d ",shuzu[i]); } return 0; }
3.用数组实现火柴棍等式
#include<stdio.h> int main() { int x,y,sum; int match[10]={6,2,5,5,4,5,6,3,7,6,}; for(x=0;x<=9;x++) for(y=0;y<=9;y++) { sum=x+y; if(sum>9) { break; } if(match[x]+match[y]+match[sum]==12) { printf("%d+%d=%d ",x,y,sum); } } return 0; }
附加题
输入一行任意长的数字,用数组元素作为计数器统计每个数字出现的次数。用下标为0的元素统计0出现的次数,用下标为1的元素统计1出现的次数…
#include<stdio.h> int main() { int shuzi[10]={0},i; char x; printf("请输入一行数字: "); do { scanf("%c",&x); switch(x) { case '0':shuzi[0]++;break; case '1':shuzi[1]++;break; case '2':shuzi[2]++;break; case '3':shuzi[3]++;break; case '4':shuzi[4]++;break; case '5':shuzi[5]++;break; case '6':shuzi[6]++;break; case '7':shuzi[7]++;break; case '8':shuzi[8]++;break; case '9':shuzi[9]++;break; } }while(x!=' '); for(i=9;i>=0;i--) { printf("数字 %d 出现了 %d 次。 ",i,shuzi[i]); } return 0; }
二、知识点总结
1:数据类型 数组名【数组长度】
2:常量表达式中不允许包含变量,但可以包含常量或符号常量
3:可以用int x[N]={1,2,3,4,5,6,7,8,9};这种形式。
4:使用数值型数组时,不能一次引用整个数组,只能逐个引用。
5.要用0-9,否则就毁了。
三、实验总结(实验中遇到的问题及解决方法)
1.求平均数时,用到这个,但是算平均数时,因为没有输入100个数据,所以要重新输入变量,才能正确求出平均数。
2.插入数组的时候要看清条件,准确找出插入的位置。
3.火柴的没什么好说的,注意数字相加和根数相加。
4.int x[10]={0},给部分元素赋初值,则其后的会被初始化为0,用这种形式配合switch可以容易的求出数字字符的个数。
5.在程序之前给数组赋值:,这样方便程序的变换使用。