1.输入若干名学生的成绩(输入人数或用负数结束均可),求其平均分,最高分和最低分,并指出最高分和最低分的学生(给出下标即可),输入一个成绩,说明是第几个学生的成绩。
#include<stdio.h> int main () { printf("请输入学生的个数: "); int N; scanf("%d",&N); int score[N],sum=0,i,a,index; double average; printf("请输入学生的成绩: ",N) ; for(i=0;i<N;i++) { scanf("%d",&score[i]); } for(i=0;i<N;i++) { sum+=score[i]; } average=(double)sum/N; printf( "平均分是:%5.lf。 ",average); int max; index=0; max=score[0]; for(i=1;i<N;i++) { if(score[i]>max) { max=score[i]; index=i; } } printf("最高分是:%d,Index=%d。 ",max,index); int min; index=0; min=score[0]; for(i=1;i<N;i++) { if(score[i]<min) { min=score[i]; index=i; } } printf("最低分是:%d,Index=%d。 ",min,index); printf("请输入你想查看的成绩 "); scanf("%d",&a); index=0; for(i=0;i<N;i++) { if(a==score[i]) { index=i+1; printf("这是第%d个学生的成绩 ",index); } } return 0; }
2.现有一个有序正整数数组(从小到大排序),输入一个数,插入到数组中,要求插入后的数组仍然有序。对插入到最前、最后、中间位置三种情况进行验证。
#include<stdio.h> int main() { int i,j,x; int a[11]={1,3,5,7,9,11,13,15,17,19}; printf("请输入一个数字 "); scanf("%d",&x); if(x>=a[9]) { printf("现在数据为:1,3,5,7,9,11,13,15,17,19,%d",x); } else { for(i=0;i<10;i++) { if(x<a[i]) { j=i; break; } } for(i=10;i>=j;i=i-1) { a[i+1]=a[i]; } a[j]=x; printf("现在数据为"); for(i=0;i<11;i++) { printf("%d ",a[i]); } } return 0; }
3.用数组实现火柴棍等式
#include<stdio.h> int main() { int a,b,c; int match[10]={6,2,5,5,4,5,6,3,7,6}; for(a=0;a<=9;a=a+1) { for(b=0;b<=9;b=b+1) { c=a+b; if(c>9) { break; } if(match[a]+match[b]+match[c]==12) { printf("%d+%d=%d ",a,b,c); } } } return 0; }
二、知识点总结:
1.数组的定义:定义方式:数据类型 数据名【数据长度】。
2.数组必须先定义,后使用。
3.数组名不能被赋值。
4.数组的下标是从0开始的。
5.数组不初始化,其元素值为随机数。
6.数组中的每一个元素都属于同一种数据类型。
7.使用#define声明多行函数与声明单行函数没有本质区别。
8.数组一旦创建,不能改变大小;数组中的元素在内存中是连续依次排列的。
三、实验总结:
1.可用#define主函数定义。
2.数组元素更换顺序应从后往前。
3.数组中元素值不赋初始值的话,初始值默认为0。