首页 > 代码库 > 第十次作业
第十次作业
1.有5名学生,每名学生有语文、数学和外语3门课的考试成绩。编程统计各学生的总分和平均分以及所有学生各科的平均分。要求成绩在程序中初始化,结果以表格的形式输出。
#include <stdio.h> #define M 5 #define N 3 void Score(int score[M][N]); void aveforstudent(int score[M][N],double average1[]); void aveforsubject(int score[M][N],double average2[]); int main() { int score[M][N],i,j,sum1; double average1[M],average2[N]; Score(score); aveforstudent(score,average1); aveforsubject(score,average2); printf("\t语文\t数学\t英语\t总分\t平均分\n"); for(i=0;i<M;i++) { printf("学生%d\t",i+1); sum1=0; for(j=0;j<N;j++) { printf("%d\t",score[i][j]); sum1=sum1+score[i][j]; } printf("%d\t",sum1);0 printf("%.2f",average1[i]); printf("\n"); } printf("平均分\t"); for(j=0;j<N;j++) { printf("%.2f\t",average2[j]); } return 0; } void aveforstudent(int score[M][N],double average1[]) { int i,j,sum; for(i=0;i<M;i++) { sum=0; for(j=0;j<N;j++) { sum=sum+score[i][j]; } average1[i]=(double)sum/N; } } void aveforsubject(int score[M][N],double average2[]) { int i,j,sum; for(j=0;j<N;j++) { sum=0; for(i=0;i<M;i++) { sum=sum+score[i][j]; } average2[j]=(double)sum/M; } } void Score(int score[M][N]) { int i,j; for(i=0;i<M;i++) { printf("请输入第%d个学生成绩\n",i+1); for(j=0;j<N;j++) { scanf("%d",&score[i][j]); } } }
2.求任意方阵每行、每列、两对角线上元素之和。
#include <stdio.h> #define N 100 int main() { int fz[N][N],i,j,sum,a,b=0; printf("请输入行数"); scanf("%d",&a); for(i=0;i<a;i++) { for(j=0;j<a;j++) { b++; fz[i][j]=b; printf("%3d",b); } printf("\n"); } for(i=0;i<a;i++) { sum=0; for(j=0;j<a;j++) { sum=sum+fz[i][j]; } printf("第%d行的和为%d\n",i+1,sum); } for(j=0;j<a;j++) { sum=0; for(i=0;i<a;i++) { sum=sum+fz[i][j]; } printf("第%d列的和为%d\n",j+1,sum); } sum=0; for(i=0;i<a;i++) { sum=sum+fz[i][i]; } printf("左对角线的和为%d\n",sum); sum=0; j=a-1; for(i=0;i<a;i++) { sum=sum+fz[i][j]; j--; } printf("右对角线的和为%d\n",sum); return 0; }
实验总结:
1 \t为制表位!
2 输出语句应判断好在循环内还是循环外!
3 定义函数时数组名不能相同!
第十次作业
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。