第十次作业
2016-12-06 21:25 沉默的核桃 阅读(186) 评论(1) 编辑 收藏 举报1.有5名学生,每名学生有语文、数学和外语3门课的考试成绩。编程统计各学生的总分和平均分以及所有学生各科的平均分。要求成绩在程序中初始化,结果以表格的形式输出。
#include <stdio.h> #define N 5 #define M 6 int main() { int i,j; double sum,score[M][N]; for(i=0;i<M-1;i++) { for(j=0;j<3;j++) { printf("请输入第%d个学生的成绩\n",i+1); scanf("%lf",&score[i][j]); } } for(i=0;i<M;i++) { sum=0; for(j=0;j<3;j++) { sum+=score[i][j]; } score[i][N-2]=sum; score[i][N-1]=sum/3; } for(j=0;j<3;j++) { sum=0; for(i=0;i<M-1;i++) { sum+=score[i][j]; } score[M-1][j]=sum/5; } for(i=0;i<M;i++) { for(j=0;j<N;j++) { if(i==M-1&&j>2) { break; } else printf("%8.2f",score[i][j]); } printf("\n"); } return 0; }
总结:我没有用函数,在函数那一块还不是很明白,用上函数,主函数都不会写;
2.求任意方阵每行、每列、两对角线上元素之和。
#include <stdio.h> #define N 100 int main() { int square[N][N],i,j,M,sum,a=0; printf("请输入正方形的边长\n"); scanf("%d",&M); for(i=0;i<M;i++) { for(j=0;j<M;j++) { a++; square[i][j]=a; } } for(i=0;i<M;i++) { for(j=0;j<M;j++) { printf("%2d",square[i][j]); } printf("\n"); } for(i=0;i<M;i++) { sum=0; for(j=0;j<M;j++) { sum+=square[i][j]; } printf("每行的和为%d\n",sum); } for(j=0;j<M;j++) { sum=0; for(i=0;i<M;i++) { sum+=square[i][j]; } printf("每列的和为%d\n",sum); } sum=0; for(j=0;j<M;j++) { for(i=0;i<M;i++) { if(i==j) { sum=sum+square[i][j]; } } } printf("左对角线的和为%d\n",sum); sum=0; for(j=0;j<M;j++) { for(i=0;i<M;i++) { if(i+j==M-1) { sum=sum+square[i][j]; } } } printf("右对角线的和为%d\n",sum); return 0; }
总结:这个相对简单一点,输入输出的位置一定要想对放在哪个位置。
知识点
1,二维数组有行和列,长度必须要定义;
2,在二维数组里,元素个数=行数*列数;
3,数组初始化,指的是自己给数组赋值。
实验总结
都没有用函数写,函数那一块学的不太到位。还有输出的位置不太会放,好几次都错在了这个上面。