一、实验内容
1.有5名学生,每名学生有语文、数学和外语3门课的考试成绩。编程统计各学生的总分和平均分以及所有学生各科的平均分。要求成绩在程序中初始化,结果以表格的形式输出。
#include<stdio.h> #define N 5 #define M 3 int main() { int fen[N][M]={{100,99,98},{97,96,95},{94,93,92},{91,90,89},{88,87,86}},sum1,sum2,i,j,a=0; double ave1,ave2,b=0,c=0,d=0; printf(" 语文 数学 英语 总分 平均分 "); sum1=0; sum2=0; ave1=0; ave2=0; for(i=0;i<N;i++) // 5行 { for(j=0;j<M;j++) //三列 { printf("%d ",fen[i][j]); a++; sum1=sum1+fen[i][j]; ave1=sum1/3; if(a%3==0) { printf("%d %.2lf ",sum1,ave1); sum1=0; } if(j==0) { b=b+fen[i][j]; } if(j==1) { c=c+fen[i][j]; } if(j==2) { d=d+fen[i][j]; } } } printf("平均分 %.2f %.2f %.2f",b/5,c/5,d/5); return 0; }
2.求任意方阵每行、每列、两对角线上元素之和。
#include<stdio.h> #define N 3 //HANG #define M 3 //LIE int main() { int queue[N][M]={{1,2,3},{1,2,3},{1,2,3}},a,b,c,lie1=0,lie2=0,lie3=0,hang1=0,hang2=0,hang3=0,xie1=0,xie2=0,i; for(a=0;a<N;a++) { for(b=0;b<M;b++) { printf(" %d ",queue[a][b]); c++; if(c%3==0) { printf(" "); } } } for(i=0;i<3;i++) { hang1=hang1+queue[0][i]; hang2=hang2+queue[1][i]; hang3=hang3+queue[2][i]; lie1=lie1+queue[i][0]; lie2=lie2+queue[i][1]; lie3=lie3+queue[i][2]; xie1=xie1+queue[i][i]; xie2=xie2+queue[i][N-1-i]; } printf("第一行的和为%d ",hang1); printf("第二行的和为%d ",hang2); printf("第三行的和为%d ",hang3); printf("第一列的和为%d ",lie1); printf("第二列的和为%d ",lie2); printf("第三列的和为%d ",lie3); printf("斜向右下的和为%d ",xie1); printf("斜向左下的和为%d ",xie2); return 0; }
实验总结:
1、注意循环嵌套
2、测试时可以先用简单的数进行测试
3、为退格 1字符长度 4个字符
4、二维数组的第一个[]中可以省略,第二个则不可以