27.输入五个学生四门课的成绩,计算个人与各科平均成绩及全班平均成绩,并在屏幕上显示出来。 /*输入五个学生四门课的成绩,计算个人与各科平均成绩及 *全班平均成绩,并在屏幕上显示出来。 */ #include<stdio.h> /*声明结构struct scores,并定义一个此结构的变量数组*/ struct scores{ float subject[5]; } score[6]; /*声明函数void findmean(struct scores [])计算 *各平均值,并存在数组中。 */ void findmean(struct scores []); /*声明函数void printscore(struct scores []) *打印上述结构的数据类型。 */ void printscore(struct scores []); main() { int i,j; /*读取成绩*/ for(i=0;i<=4;i++) { printf("请输入学生%d的成绩:\n",i+1); for(j=0;j<=3;j++) scanf("%f",&(score[i].subject[j])); } printf("结果为:\n\t学生编号\t课程1\t课程2\t课程3\t课程4\t平均成绩\n"); /*应用函数计算平均值并输出*/ findmean(score); printscore(score); return(0); } /*定义函数void findmean(struct scores [])计算 *各平均值,并存在数组中。 */ void findmean(struct scores score[]) { int i,j; float sum=0; /*求个人平均值*/ for(i=0;i<=4;i++) { for(j=0;j<=3;j++) sum=sum+score[i].subject[j]; score[i].subject[j]=sum/4; sum=0; } /*求课程平均值*/ for(j=0;j<=4;j++) { for(i=0;i<=4;i++) sum=sum+score[i].subject[j]; score[5].subject[j]=sum/5; sum=0; } } /*函数void printscore(struct scores []) *打印上述结构的数据类型。 */ void printscore(struct scores score[]) { int i,j; /*打印的格式控制*/ for(i=0;i<=5;i++) { if(i==5) printf("\t课程平均"); else { printf("\t学生%d",i+1); printf("\t"); } for(j=0;j<=4;j++) printf("\t%f\b\b\b\b\b",score[i].subject[j]); printf("\n"); } } 运行效果如图:
|
|