第一题:
题目要求:
代码:
#include<stdio.h> int sum(double a[5][5],int m); double average(double a[5][5],int m); double average1(double a[5][5],int m); int main() { double a[5][5]={{81,82,83},{84,85,86},{87,88,89},{90,91,92}}; int i,x,n; for(i=0;i<=5;i++) { a[i][3]=sum(a,i); a[i][4]=average(a,i); } printf(" Chinese Math English Sum Average "); for(i=0;i<=5;i++) { for(x=0;x<5;x++) { printf(" %.2lf",a[i][x]); } printf(" "); } printf("average"); for(i=0;i<3;i++) { printf(" %.2lf",average1(a,i)); } return 0; } int sum(double a[5][5],int m) { int sum=0,i; for(i=0;i<3;i++) { sum=sum+a[m][i]; } return sum; } double average(double a[5][5],int m) { return(double)sum(a,m)/3; } double average1(double a[5][5],int m) { int sum=0,n; for(n=0;n<5;n++) { sum=sum+a[n][m]; } return (double)sum/5; }
运行结果:
第二题:
题目要求:
实验代码:
#include<stdio.h> int main() { int m; printf("请输入矩形的长和宽 "); scanf("%d",&m); int a[m][m],i,j,x=1,b[m],c[m],n=0,y=0; for (i=0;i<m;i++) { b[i]=0; c[i]=0; } for (i=0;i<m;i++) { for(j=0;j<m;j++) { a[i][j]=x++; printf("%4d",a[i][j]); if((x-1)%m==0) { printf(" "); } } } for(i=0;i<m;i++) { for(j=0;j<m;j++) { b[i]+=a[i][j]; c[j]+=a[i][j]; if(i==j) { n+=a[i][j]; } if(i+1==m-j) { y+=a[i][j]; } } } for(i=0;i<m;i++) { printf("第%d行和为%d,第%d列和为%d。 ",i+1,b[i],i+i,c[i]); } printf("对角线和为%d和%d ",n,y); return 0; }
运行结果:
实验总结:
第一题中,我运用了定义三个函数。应当注意的是,定义函数时,求平均值要用到double类型。求和不涉及小数用整型。
第二题中没思路。。。。也是在室友大神帮助下,完成的。在输出表格的时候,遇到的困难是不知道在什么地方插入输出表格。
之所以没思路主要原因是对二维数组不太理解 ......= =,所以嘞,还是多练吧,╮(╯▽╰)╭。希望在室友大神帮助下能有所进步,加油咯~