一:实验内容
1.输入若干名学生的成绩(输入人数或用负数结束均可),求其平均分,最高分和最低分,并指出最高分和最低分的学生(给出下标即可),输入一个成绩,说明是第几个学生的成绩。
#include <stdio.h> #define N 60 int main() { int score[N],i,n,sum,max,min,index1,index2,index3,grade; double average; //输入 printf("输入学生人数\n"); scanf("%d",&n); for(i=0;i<n;i++) { printf("input the score:\n"); scanf("%d",&score[i]); } //求平均分 sum=0; for(i=0;i<n;i++) { sum+=score[i]; } average=(double)sum/n; printf("average=%.2f",average); //求最高分及下标 max=score[0]; index1=0; for(i=0;i<n;i++) { if(score[i]>max) { max=score[i]; index1=i; } } printf("max=%d,index1=%d",max,index1); //求最低分及下标 min=score[0]; index2=0; for(i=0;i<n;i++) { if(score[i]<min) { min=score[i]; index2=i; } } printf("min=%d,index2=%d",min,index2); //查找 index3=0; printf("input the score you want to find:\n"); scanf("%d",&grade); for(i=0;i<n;i++) { if(grade==score[i]) { index3=i; printf("第%d个学生的成绩",index3+1); break; } } return 0; }
2.现有一个有序正整数数组(从小到大排序),输入一个数,插入到数组中,要求插入后的数组仍然有序。对插入到最前、最后、中间位置三种情况进行验证。
#include <stdio.h> #define N 11 int main() { int a,b,i1,i2,i; int number[11]={1,3,5,7,9,11,14,15,17,19}; printf("输入一个数:\n"); scanf("%d",&a); if(a<number[0]) { for(i1=10,i2=9;i2>=0;i1--,i2--) { number[i1]=number[i2]; } number[0]=a; } else if(a>number[9]) { number[10]=a; } else { for(i=0;i<=10;i++) { if(a<number[i]) { b=i; break; } } for(i1=10,i2=9;i2>=b;i1--,i2--) { number[i1]=number[i2]; } number[b]=a; } for(i=0;i<11;i++) { printf(" %d",number[i]); } return 0; }
3.用数组实现火柴棍等式
#include <stdio.h> int main() { int a,b,sum=0; int match[10]={6,2,5,5,4,5,6,3,7,9}; for(a=0;a<=9;a++) for(b=0;b<=9;b++) { sum=a+b; if(sum>9) { break; } if(match[a]+match[b]+match[sum]==12) { printf("%d+%d+%d\n",a,b,sum); } } return 0; }
二:知识点总结
1:数据类型 数组名【数组长度】;要先定义后使用
2:只能逐个引用数组元素,不能一次引用整个数组
3:数组不初始化,其元素值为初始数
4:只给部分数组元素赋初值时,其后元素初始化为0
5:当全部数组元素赋初值时,可 不指定数组长度
6:数组变量本身不能被赋初值
三:实验总结
1:在数组名数组长度后面忘记加分号
2:最大值最小值开头变量定义错误
3:求最小值时忘记输出
时间: 2024-10-06 21:23:04