第十次作业
Posted 梦你。
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第十次作业相关的知识,希望对你有一定的参考价值。
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 定义函数时数组名不能相同!
以上是关于第十次作业的主要内容,如果未能解决你的问题,请参考以下文章