1.输入若干名学生的成绩(输入人数或用负数结束均可),求其平均分,最高分和最低分,并指出最高分和最低分的学生(给出下标即可),输入一个成绩,说明是第几个学生的成绩。
# include<stdio.h> # define N 100 int main() { int i,a,b,c,d,e,sum,max,min; double average; int score[N]; printf("请输入学生的人数 "); scanf("%d",&a); b=0; c=0; d=0; e=0; sum=0; for(i=0;i<a;i++) { printf("请输入学生的成绩 "); scanf("%d",&score[i]); sum=sum+score[i]; } average=(double)sum/a; printf("学生成绩平均数为%.2f ",average); max=score[0]; min=score[0]; for(i=0;i<a;i++) { if(score[i]>=max) { b=i+1; } } for(i=0;i<a;i++) { if(score[i]<=min) { c=i+1; } } printf("取得最大分数的学生为%d ",b); printf("取得最小分数的学生为%d ",c); printf("请输入一个分数,我将输出他是第几名 "); scanf("%d",&d); for(i=0;i<a;i++) { if(score[i]==d) { e=i+1; printf("他是第%d名学生 ",e); } } return 0; }
2.现有一个有序正整数数组(从小到大排序),输入一个数,插入到数组中,要求插入后的数组仍然有序。对插入到最前、最后、中间位置三种情况进行验证。
#include<stdio.h> int main() { int i,a,b; int number[11]={0,10,20,30,40,50,60,70,80,90}; printf("0,10,20,30,40,50,60,70,80,90,请输入一个数插入数据中的数 "); scanf("%d",&b); if(b>=number[9]) { printf("0,10,20,30,40,50,60,70,80,90,%d",b); } else { for(i=0;i<10;i=i+1) { if(b<number[i]) { a=i; break; } } for(i=10;i>=a;i=i-1) { number[i+1]=number[i]; } number[a]=b; printf("现在数据为"); for(i=0;i<11;i=i+1) { printf("%d ",number[i]); } } return 0; }
3.用数组实现火柴棍等式
# include <stdio.h> int main() { int x,y,sum; int gen[10]={6,2,5,5,4,5,6,3,7,6}; for(x=0;x<=9;x++) { for(y=0;y<=9;y++) { sum=x+y; if(sum>9) { break; } if(gen[x]+gen[y]+gen[sum]==12) { printf("%d+%d=%d ",x,y,sum); } } } return 0; }
知识点总结1.数组的下标是从0开始的。
2.在数组定义后对数组进行动态赋值,通常通过循环结构实现。
实验总结1.:元素应该是同种数据类型,元素在内存中是连续依次排列的。
2.使用#define声明多行函数与声明单行函数没有本质区别。