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