这不是占坑,这不是占坑,这不是占坑,重要的事情说三遍
一
实验问题:输入若干名学生的成绩(输入人数或用负数结束均可),求其平均分,最高分和最低分,并指出最高分和最低分的学生(给出下标即可),输入一个成绩,说明是第几个学生的成绩。
实验代码:
#include<stdio.h> #define N 100 int main () { int grade[N],sum=0,i,n,max,min,inder1,inder2,x,y=1; double average; printf("请输入学生的数量。 "); scanf("%d",&n); printf("请输入考试成绩: "); for(i=0;i<n;i++) { scanf("%d",&grade[i]); sum=sum+grade[i]; } average=(double)sum/n; printf("平均分为:%.2lf ",average); min=grade[0]; max=grade[0]; for(i=0;i<n;i++) { if(grade[i]>max) max=grade[i]; if(grade[i]<min) min=grade[i]; } for(i=0;i<N;i++) { if(grade[i]==max) { inder1=i+1; printf("最高分是%d,是第%d名同学. ",max,inder1); } if(grade[i]==min) { inder2=i+1; printf("最低分是%d,是第%d名同学. ",min,inder2); } } printf("请输入您所查询学生的成绩: "); scanf("%d",&x); for(i=0;i<n;i++) { if(grade[i]==x) { i=i+1;
y=0; printf("你所查询的学生是第%d名。 ",i); } } if(y==1) { printf("你所查询的学生不存在。 ",i); } return 0; }
实验截图:
二
实验问题:现有一个有序正整数数组(从小到大排序),输入一个数,插入到数组中,要求插入后的数组仍然有序。对插入到最前、最后、中间位置三种情况进行验证。
实验代码:
#include<stdio.h> #include<stdlib.h> #define N 11 int main() { int sum[N]={1,3,5,7,9,11,13,15,17,19},x,i,y=10,c; printf("请输入插入其中的数字: "); scanf("%d",&x); if(x<=0) { printf("输入错误。请输入正整数。 "); exit(0); } for(i=0;i<N-1;i++) { if(sum[i]>=x) { y=i; break; } } if(y<10) { for(i=N-1;i>y;i--) { sum[i]=sum[i-1]; } } sum[y]=x; for(i=0;i<=N-1;i++) { printf("%d ",sum[i]); } return 0; }
实验截图:
三
实验问题:用数组实现火柴棍等式
实验代码:
#include<stdlib.h> int main() { int match[10]={6,2,5,5,4,5,6,3,7,6}; int x,y,a,b,c; printf("请输入火柴棍数目: "); scanf("%d",&x); if(x>25||x<7) { printf("您输入的数目有错误。 "); exit(0); } y=x-4; for(a=0;a<=9;a++) for(b=0;b<=9;b++) { c=a+b; if(c>9) break; if(match[a]+match[b]+match[c]==y) { printf("%d+%d=%d ",a,b,c); } } return 0; }
实验截图:
附加题
实验题目:
输入一行任意长的数字,用数组元素作为计数器统计每个数字出现的次数。用下标为0的元素统计0出现的次数,用下标为1的元素统计1出现的次数…
实验代码:
#include<stdio.h> int main() { int sums[10]={0},i,n=0; char sum; printf("输入 "); while(sum!=' ') { if(sum<48||sum>57) { n++; } scanf("%c",&sum); sums[sum-48]++; } for(i=0;i<10;i++) { printf("数字%d出现了%d次 ",i,sums[i]); } n=n-1; printf("其他字符出现了%d次 ",n); return 0; }
实验截图:
知识点总结
1.认知了一维数组的定义,以及一维数组元素的引用。
2.学习如何对一维数组赋值的方法:动态赋值,逐个赋值,定义赋值 。
2.学习如何对一维数组赋值的方法:动态赋值,逐个赋值,定义赋值 。
3.利用数组再次优化函数,使函数更加便捷。
4.运用define来确定数组的元素个数。
实验总结
1.记住数组里的数是最大的元素个数。
2.数组的元素是从0开始计数。
3.若不填满数组则剩下元素值为0,而超过数组数则会使程序错误,甚至瘫痪。