一、实验要求
1、实验内容: 有5名学生,每名学生有语文、数学和外语3门课的考试成绩。编程统计各学生的总分和平均分以及所有学生各科的平均分。要求成绩在程序中初始化,结果以表格的形式输出。
代码:
#include<stdio.h> int main() { int i,j,sum1,sum2; double a[5][5]={{80,90,100},{80,90,100},{80,90,100},{80,90,100},{80,90,100}},ave[3]={0}; sum1=0; sum2=0; for(i=0;i<5;i++) { for(j=0;j<3;j++) { sum1+=a[i][j]; } a[i][3]=sum1; a[i][4]=(double)sum1/3; } for(j=0;j<3;j++) { for(i=0;i<5;i++) { sum2+=a[i][j]; } ave[j]=(double)sum2/5; } printf(" 语文 数学 英语 总分 平均分 "); for(i=0;i<5;i++); { for(j=0;j<5;j++) { printf(" %.2f",a[i][j]); } printf(" "); } printf("平均分"); for(j=0;j<3;j++) { printf(" %.2f",ave[j]); } return 0; }
程序运行结果:
2、实验内容 :求任意方阵每行、每列、两对角线上元素之和。
代码:
#include<stdio.h> #define N 100 int main() { int sum1,sum2,sum3=0,sum4=0,i,j,n,a[N][N]; printf("请输入方阵的行数: "); scanf("%d",&n); for(i=0;i<n;i++) { for(j=0;j<n;j++) { printf("请输入方阵的一个元素: "); scanf("%d",&a[i][j]); } } for(i=0;i<n;i++) { sum1=0; for(j=0;j<n;j++) { sum1+=a[i][j]; } printf("第%d行的元素之和是%d ",i+1,sum1); } for(j=0;j<n;j++) { sum2=0; for(i=0;i<n;i++) { sum2+=a[i][j]; } printf("第%d列的元素之和是%d ",j+1,sum2); } for(i=0,j=0;i<n,j<n;i++,j++) { sum3+=a[i][j]; } printf("一条对角线上的元素之和是%d ",sum3); for(i=0,j=n-1;i<n;i++,j--) { sum4+=a[i][j]; } printf("另一条对角线上的元素之和是%d ",sum4); return 0; }
程序运行结果:
二、实验总结
1、制作表格用 ;
2、二维数组中可以省略行的数组长度,但是不能省略列的数组长度;
3、二维数组中a[行数][列数];在循环中要注意先循环行还是先循环列;
4、注意中英文的书写。