第十次作业
Posted 天亮……
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第十次作业相关的知识,希望对你有一定的参考价值。
一、实验内容
1.有5名学生,每名学生有语文、数学和外语3门课的考试成绩。编程统计各学生的总分和平均分以及所有学生各科的平均分。要求成绩在程序中初始化,结果以表格的形式输出。
# include<stdio.h> # define N 6 # define M 6 void readscore(int score[M][N]); void aveforstud(int score[M][N],double ave[]); void aveforcourse(int score[M][N],double ave[]); void sum(int score[M][N],int isum[]); int main() { int i,j,score[M][N],isum[M]={0}; double ave[M-1]={0}; readscore(score);//输入成绩 sum(score,isum); //输出每位学生的总分 aveforstud(score,ave);//输出每个学生的平均值 printf(" 语文 数学 英语 总分 平均分\\n"); for(i=0;i<M-1;i++) { printf("%d",i+1); for(j=0;j<N-3;j++) { printf("%4d",score[i][j]); } printf("\\t\\t%d\\n",isum[i]); printf("\\t\\t\\t\\t%lf\\n",ave[i]); printf("\\n"); } aveforcourse(score,ave);//输出每科的平均值 printf("平均值"); for(i=1;i<N-2;i++) { printf("%.2lf",ave[i]); } return 0; } void readscore(int score[M][N])//输入函数 { int i,j; printf("输入五位学生的成绩:\\n"); for(i=0;i<M-1;i++) { printf("输入第%d个学生的成绩:\\n",i+1); for(j=0;j<N-3;j++) { scanf("%d",&score[i][j]); } } } void sum(int score[M][N],int isum[])//每位学生的总分的函数 { int i,j,sum; for(i=0;i<M-1;i++) { sum=0; for(j=0;j<N-3;j++) { sum+=score[i][j]; } isum[i]=sum; } } void aveforstud(int score[M][N],double ave[])//每位学生的平均分的函数 { int i,j,sum; for(i=0;i<M-1;i++) { sum=0; for(j=0;j<N-3;j++) { sum+=score[i][j]; } ave[i]=(double)sum/3.0; } } void aveforcourse(int score[M][N],double ave[])//每科的平均分的函数 { int i,j,sum; for(j=0;j<N-3;j++) { sum=0; for(i=0;i<M-1;i++) { sum+=score[i][j]; } } ave[i]=(double)sum/5.0; }
2.求任意方阵每行、每列、两对角线上元素之和。
# include <stdio.h> # define N 100 # define M 100 int main() { int i,j,m,sum[M][N],sum1,sum2,sum3,sum4; printf("请输入行列数m\\n"); scanf("%d",&m); for(i=0;i<m;i++) { printf("请输入第%d行的数字:\\n",i+1); for(j=0;j<m;j++) { scanf("%d",&sum[i][j]); } } for(i=0;i<m;i++) { sum1=0; for(j=0;j<m;j++) { sum1+=sum[i][j]; } printf("第%d行的和为:%d\\n",i+1,sum1); } for(j=0;j<m;j++) { sum2=0; for(i=0;i<m;i++) { sum2+=sum[i][j]; } printf("第%d列的和为:%d\\n",j+1,sum2); } sum3=0; sum4=0; for(i=0;i<m;i++) { sum3+=sum[i][i]; sum4+=sum[i][m-1-i]; } printf("对角线之和为%d %d\\n",sum3,sum4); return 0; }
二.实验总结:
1.记住加‘&’
2.注意赋初值
3.在第一题主函数要将所需输出的值嵌套在for循环中
4.注意变量名和地址名不能相同
5..表格的输出使用\\t,表示水平制表位。
以上是关于第十次作业的主要内容,如果未能解决你的问题,请参考以下文章