1.有5名学生,每名学生有语文、数学和外语3门课的考试成绩。编程统计各学生的总分和平均分以及所有学生各科的平均分。要求成绩在程序中初始化,结果以表格的形式输出。
#include<stdio.h> void average1(int score[5][3],double ave[]); void average2(int score[5][3],double ave[]); int main() { int score[5][3]={0},i,j,sum,sum1=0; double ave[5]; for(i=0;i<5;i++) { printf("请分别输入学生%d的语文,数学,英语成绩:\n",i+1); for(j=0;j<=2;j++) { scanf("%d",&score[i][j]); } } average1(score,ave); average2(score,ave); printf("学号 语文 数学 英语 总分 平均分\n"); for(i=0;i<5;i++) { sum=0; printf("学生%d:",i+1); for(j=0;j<3;j++) { printf(" %d",score[i][j]); sum=sum+score[i][j]; } printf(" %d",sum); sum1=sum1+sum; printf(" %.2f",ave[i]); printf("\n"); } printf("平均分\t"); for(j=0;j<3;j++) { printf("%.2f\t",ave[j]); } printf("%d",sum1); return 0; } void average1(int score[5][3],double ave[5]) { int sum,i,j; for(i=0;i<5;i++) { sum=0; for(j=0;j<3;j++) { sum=sum+score[i][j]; } ave[i]=(double)sum/3.0; } } void average2(int score[5][3],double ave[3]) { int sum,i,j; for(j=0;j<3;j++) { sum=0; for(i=0;i<5;i++) { sum=sum+score[i][j]; } ave[j]=(double)sum/5.0; } }
总结:这个程序好长好麻烦,主要难点是二维数组的应用,还有if else的循环。
知识点:往二位数组里边填数的时候先往第一行里定义再往第二行内填。
输出表格形式的时候要看好空格。