1.有5名学生,每名学生有语文、数学和外语3门课的考试成绩。编程统计各学生的总分和平均分以及所有学生各科的平均分。要求成绩在程序中初始化,结果以表格的形式输出。
#include<stdio.h> int main() { double grade[5][5]={{1,2,3},{4,5,6},{7,8,9},{10,11,12},{13,14,15}},average[3]; int i,j,sum; printf(" 语文 数学 英语 总和 平均 "); for(i=0;i<5;i++) { sum=0; for(j=0;j<5;j++) { sum=sum+grade[i][j]; } grade[i][3]=sum; grade[i][4]=grade[i][3]/3; } for(i=0;i<5;i++) { printf(" "); for(j=0;j<5;j++) { printf("%.2f ",grade[i][j]); } printf(" "); } for(i=0;i<3;i++) { sum=0; for(j=0;j<5;j++) { sum=sum+grade[j][i]; } average[i]=sum/5; } printf("平均 "); for(i=0;i<3;i++) { printf("%.2f ",average[i]); } return 0; }
2.求任意方阵每行、每列、两对角线上元素之和。
#include<stdio.h> # define N 2 int main() { int num[N][N]={{5,4},{1,2}}; int a,b,h1=0,h2=0,l1=0,l2=0,x1=0,x2=0; for(a=0;a<N;a++) { for(b=0;b<N;b++) { printf("%d ",num[a][b]); } printf(" "); } for(a=0;a<N;a++) { h1+=num[0][a]; h2+=num[1][a]; l1+=num[a][0]; l2+=num[a][1]; x1+=num[a][a]; x2+=num[a][N-1-a]; } printf("第一行是%d 第二行是%d 第一列是%d 第二列是%d 左对角线是%d 右对角线是%d ",h1,h2,l1,l2,x1,x2); return 0; }
实验总结:
二维数组,要考虑更多的因素
要知道循环的时候,对应的关系
避免越界现象
知识总结:
为退格 1字符长度 4个字符
.计算每个变量的时候都要重新赋值。