一、实验内容
1、实验要求:输入若干名学生的成绩(输入人数或用负数结束均可),求其平均分,最高分和最低分,并指出最高分和最低分的学生(给出下标即可),输入一个成绩,说明是第几个学生的成绩。
代码:
#include<stdio.h> #define N 30 int main() { int score[N],sum=0,i,i1=0,i2=0,i3=0,n,x,max,min; double average; printf("请输入人数: "); scanf("%d",&n); for(i=0;i<n;i++) { printf("请输入成绩: "); scanf("%d",&score[i]); 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]; i1=i; } } printf("最高分是%d,最高分学生是%d ",max,i1); min=score[0]; for(i=0;i<n;i++) { if(score[i]<min) { min=score[i]; i2=i; } } printf("最低分是%d,最低分学生是%d ",min,i2); printf("请输入一个成绩: "); scanf("%d",&x); for(i=0;i<n;i++) { if(score[i]==x) { i3=i+1; printf("%d是第%d个学生的成绩 ",x,i3); } } return 0; }
程序运行结果:
2、实验要求:现有一个有序正整数数组(从小到大排序),输入一个数,插入到数组中,要求插入后的数组仍然有序。对插入到最前、最后、中间位置三种情况进行验证。
代码:
#include<stdio.h> #define N 10 int main() { int a,b,c,n,i; int z[N]={3,5,7,9,11,13,15,17,19}; printf("请输入一个数字,将插入到3,5,7,9,11,13,15,17,19里: "); scanf("%d",&a); for(i=0;i<N;i++) { if(a<=z[i]) { n=i+1; printf("插入到第%d位前面 ",n); break; } } if(a>z[i]) { printf("3,5,7,9,11,13,15,17,19,%d ",a); } for(i=n-1,c=N-1;i<=c;c--) { z[c]=z[c-1]; } z[n-1]=a; for(i=0;i<N;i++) { printf("%d ",z[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<10;x++) { for(y=0;y<10;y++) { sum=x+y; if(sum<=9&&match[x]+match[y]+match[sum]==12) { printf("%d+%d=%d ",x,y,sum); } } } return 0; }
程序运行结果:
二、知识点总结
1、一维数组定义方式:数据类型 数组名【数组长度】
2、一个浮点型数据占四个字节;
3、数组元素的引用格式为:数组名【下标】①、下标从0开始;②、允许快捷随机访问;
4、保证数组下标不越界;
5、初始化方式:int a[5]={1,2,3,4,5}
说明:①、数组不初始化,其元素值为随机数;
②、只给部分数组元素赋初值,则其后的元素被初始化为0。
三、实验总结
1、scanf语句不要忘记取地址符;
2、可用#define主函数定义;
3、注意大括号的位置,缩格书写使代码美观。