首页 > 代码库 > 第十次作业
第十次作业
#include<stdio.h> #define M 5 #define N 5 int main() { int i,j,sum1=0,sum2=0,sum3=0,sum4=0,k; int a[M][N]; for(i=0;i<M;i++) { for(j=0;j<N;j++) { a[i][j]=j+1; printf(" %d",a[i][j]); } printf("\n"); } for(i=0;i<M;i++) { sum1=0; for(j=0;j<N;j++) { sum1+=a[i][j]; } printf("第%d行的和为%d\n",i+1,sum1); } for(j=0;j<N;j++) { sum2=0; for(i=0;i<M;i++) { sum2+=a[i][j]; } printf("第%d列的和为%d\n",j+1,sum2); } for(i=0;i<M;i++) { for(j=0;j<N;j++) { if(i==j) { sum3+=a[i][j]; } } } for(i=M-1;i>=0;i--) { for(j=0;j<N;j++) { if(i+j==M-1) { sum4+=a[i][j]; } } } printf("两对角线的和分别为%d,%d",sum3,sum4); return 0; }
一、实验内容
1.实验要求.
有5名学生,每名学生有语文、数学和外语3门课的考试成绩。编程统计各学生的总分和平均分以及所有学生各科的平均分。要求成绩在程序中初始化,结果以表格的形式输出。
代码
#include<stdio.h> #define M 5 #define N 3 void readscore(int score[M][N]); int sumforstud(int score[M][N],int sum[]); double aveforstud(int score[M][N],double ave[]); double aveforcourse(int score[M][N],double ave[]); void readscore(int score[M][N]) { int i,j; for(i=0;i<M;i++) { for(j=0;j<N;j++) { switch(j) { case 0: printf("请输入第%d位学生的数学成绩\n",i+1); scanf("%d",&score[i][j]); continue; case 1: printf("请输入第%d位学生的语文成绩\n",i+1); scanf("%d",&score[i][j]); continue; case 2: printf("请输入第%d位学生的英语成绩\n",i+1); scanf("%d",&score[i][j]); continue; } } } } int sumforstud(int score[M][N],int sum[]) { int i,j; for(i=0;i<M;i++) { sum[i]=0; for(j=0;j<N;j++) { sum[i]=sum[i]+score[i][j]; } } } //每个学生的平均分 double aveforstud(int score[M][N],double ave[]) { int i,j,sum; for(i=0;i<M;i++) { sum=0; for(j=0;j<N;j++) { sum=sum+score[i][j]; } ave[i]=(double)sum/N; } } //各科平均分 double aveforcourse(int score[M][N],double ave[]) { int i,j,sum; for(j=0;j<M;j++) { sum=0; for(i=0;i<N;i++) { sum+=score[i][j]; } ave[j]=(double)sum/N; } } int main() { int score[M][N]; double ave[M]; int sum[M]; int i,j; readscore(score); sumforstud(score,sum); aveforstud(score,ave); printf("数学\t语文\t英语\t总分\t平均分\n"); for(i=0;i<M;i++) { for(j=0;j<N;j++) { printf(" %d\t",score[i][j]); } printf("%d\t",sum[i]); printf("%.2lf\t",ave[i]); printf("\n"); } aveforcourse(score,ave); for(j=0;j<N;j++) { printf(" %.2lf\t",ave[j]); } printf("\n"); return 0; }
程序运行结果截图
2.实验要求
求任意方阵每行、每列、两对角线上元素之和。
代码
程序运行结果截图
附加题
1.实验要求
代码
截图
2.实验要求
代码
截图
二、实验总结
1.double类型变量输出时是%lf
2.二维函数必需要两层循环
3.注意数组的越界问题
第十次作业
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。