1.输入若干名学生的成绩(输入人数或用负数结束均可),求其平均分,最高分和最低分,并指出最高分和最低分的学生(给出下标即可),输入一个成绩,说明是第几个学生的成绩。
#include <stdio.h> #define N 100 int main() { int n=0,grade[N],sum=0,number,i,max,min,find,m; double average; printf("请输入需要统计的学生个数:"); scanf("%d",&number); for(i=0;i<number;i++) { printf("请输入第%d名同学的成绩:",i+1); scanf("%d",&grade[i]); sum+=grade[i]; } average=(double)sum/number; printf("平均分为%.3f分 ",average); max=grade[0]; for(i=0;i<number;i++) { if(grade[i]>=max) { max=grade[i]; m=i+1; } } printf("获得最高分的是第%d名同学,他的分数为%d分 ",m,max); min=grade[0]; for(i=0;i<number;i++) { if(grade[i]<=min) { min=grade[i]; m=i+1; } } printf("获得最低分的是第%d名同学,他的分数为%d分 ",m,min); printf("请输入你要查询的成绩:"); scanf("%d",&find); for(i=0;i<number;i++) { if(grade[i]==find) { printf("第%d名",i+1); n++; } } if(n==0) { printf("未找到符合条件的同学 "); } else { printf("同学获得了%d分",find); } return 0; }
2.现有一个有序正整数数组(从小到大排序),输入一个数,插入到数组中,要求插入后的数组仍然有序。对插入到最前、最后、中间位置三种情况进行验证
#include<stdio.h> int main() { int i,m,x,n[11]={2,3,4,9,10,12,15,44,63,89}; printf("原数组为:2 3 4 9 10 12 15 44 63 89 "); printf("请输入你要插入的数:"); scanf("%d",&m); if(m>n[9]) { n[10]=m; } else { for(i=0;i<10;i++) { if(m<n[i]) { x=i; break; } } for(i=9;i>=x;i--) { n[i+1]=n[i]; } n[x]=m; } printf("新的数组为:"); for(i=0;i<=10;i++) { printf("% d",n[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++) { for(b=0;b<=9;b++) { for(c=0;c<=9;c++) { if(a+b==c&&match[a]+match[b]+match[c]==12) { printf("%d+%d=%d ",a,b,c); } } } } return 0; }