第十次作业
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第十次作业相关的知识,希望对你有一定的参考价值。
实验内容
1.有5名学生,每名学生有语文、数学和外语3门课的考试成绩。编程统计各学生的总分和平均分以及所有学生各科的平均分。要求成绩在程序中初始化,结果以表格的形式输出。
代码
1 # include <stdio.h> 2 # include <stdlib.h> 3 # define M 6 4 # define N 6 5 void average(float a[M][N]); 6 int main() 7 { 8 int x,y,z,sum; 9 float b[M][N]={{1,97,99,100},{2,95,94,99},{3,99,100,95},{4,98,99,100},{5,99,100,98}}; 10 printf("\\tChinese\\tMath\\tEnglish\\tsum\\tsumave\\n"); 11 average(b); 12 for(x=0;x<6;x++) 13 { 14 for(y=0;y<6;y++) 15 { 16 if(y==5) 17 { 18 printf("%.2f\\t",b[x][y]); 19 } 20 else if(x==5) 21 { 22 printf("subave\\t"); 23 for(z=1;z<=3;z++) 24 { 25 printf("%.2f\\t",b[x][z]); 26 } 27 exit(0); 28 } 29 else 30 { 31 printf("%.0f\\t",b[x][y]); 32 } 33 } 34 printf("\\n"); 35 } 36 return 0; 37 } 38 void average(float a[M][N]) 39 { 40 int x,y,sum; 41 for(y=1;y<4;y++) 42 { 43 sum=0; 44 for(x=0;x<5;x++) 45 { 46 sum+=a[x][y]; 47 } 48 a[5][y]=sum/5.0; 49 } 50 for(x=0;x<5;x++) 51 { 52 sum=0; 53 for(y=1;y<4;y++) 54 { 55 sum+=a[x][y]; 56 } 57 a[x][4]=sum; 58 a[x][5]=sum/3.0; 59 } 60 }
运行结果
2.求任意方阵每行、每列、两对角线上元素之和。
代码
1 # include <stdio.h> 2 int main() 3 { 4 int n,i,j; 5 printf("请输入方阵的行数\\n"); 6 scanf("%d",&n); 7 double a[n][n],x,c[n],d[n],diagonal1,diagonal2; 8 x=1; 9 for(i=0;i<n;i++) 10 { 11 c[i]=0; 12 d[i]=0; 13 } 14 for(i=0;i<n;i++) 15 { 16 for(j=0;j<n;j++) 17 { 18 a[i][j]=x++; 19 } 20 } 21 for(i=0;i<n;i++) 22 { 23 for(j=0;j<n;j++) 24 { 25 c[i]+=a[i][j]; 26 d[j]+=a[i][j]; 27 if(i==j) 28 { 29 diagonal1+=a[i][j]; 30 } 31 if(i+j==n-1) 32 { 33 diagonal2+=a[i][j]; 34 } 35 } 36 } 37 for(i=0;i<n;i++) 38 { 39 printf("第%d行的和是%.0lf\\n",i+1,c[i]); 40 printf("第%d列的和是%.0lf\\n",i+1,d[i]); 41 } 42 printf("两对角线的和分别为%.0lf,%.0lf",diagonal1,diagonal2); 43 return 0; 44 }
运行结果
实验总结
二维数组不能自动换行,需要手动添加换行符
以上是关于第十次作业的主要内容,如果未能解决你的问题,请参考以下文章