首页 > 代码库 > 第十次作业
第十次作业
一、实验内容
1.有5名学生,每名学生有语文、数学和外语3门课的考试成绩。编程统计各学生的总分和平均分以及所有学生各科的平均分。要求成绩在程序中初始化,结果以表格的形式输出。
#include<stdio.h> #define H 5 #define L 5 int main() { int i,j,sum=0; float ave,score[H][L]={67,89,78,0,0,68,98,88,0,0,90,70,56,0,0,78,80,78,0,0,78,89,70,0,0};; for(i=0;i<H;i++) { sum=0; for(j=0;j<L;j++) { sum+=score[i][j]; score[i][3]=sum; ave=0; ave=(double)sum/3; score[i][4]=ave; } } printf(" 语文 数学 英语 总分 平均分"); printf("\n"); for(i=0;i<H;i++) { printf("学生%d\t",i+1); for(j=0;j<L;j++) { printf(" %.2f ",score[i][j]); } if(j==5) { printf("\n"); } } for(i=0;i<H;i++) { sum=0; for(j=0;j<L;j++) { sum=sum+score[j][i]; ave=0; ave=(double)sum/5; score[i][5]=ave; } } printf("平均分"); for(i=0;i<L;i++) { printf(" %.2f",score[i][5]); } printf("\n"); return 0; }
2.求任意方阵每行、每列、两对角线上元素之和。
#include<stdio.h> #define N 5 int main() { int n,i,j,hangsum,liesum,duisum1,duisum2,a[N][N]={0}; for(i=0;i<N;i++) for(j=0;j<N;j++) { a[i][j]=n; n++; printf("%5d",a[i][j]); } printf("\n"); for(i=0;i<N;i++) { hangsum=0; for(j=0;j<N;j++) { hangsum+=a[i][j]; } printf("第%d行的元素之和为%d\n",i+1,hangsum); } for(j=0;j<N;j++) { liesum=0; for(i=0;i<N;i++) { liesum+=a[i][j]; } printf("第%d列的元素之和为%d\n",j+1,liesum); } for(i=0;i<N;i++) { duisum1=0; duisum2=0; for(j=0;j<N;j++) { duisum1=a[0][0]+a[1][1]+a[2][2]+a[3][3]+a[4][4]; duisum2=a[0][4]+a[1][3]+a[3][1]+a[4][0]; } } printf("左上到右下对角线的和为%d\n",duisum1); printf("左下到右上对角线的和为%d\n",duisum2); return 0; }
二、实验总结
1.注意不要越界。
2.在声明函数的二维数组形参时,可以省略第一维的长度,但不能省略数组第二维的长度。
3.输出时不加取地址符
第十次作业
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。