标签:学生 使用 函数 ges 实验 div 维数 include 数组
1.有5名学生,每名学生有语文、数学和外语3门课的考试成绩。编程统计各学生的总分和平均分以及所有学生各科的平均分。要求成绩在程序中初始化,结果以表格的形式输出。
#include <stdio.h> #define M 5 #define N 3 void readScore(int score[M][M]);//输入函数 void aveforStud(int score[M][M],double ave1[]);//计算每个学生的平均值 void aveforCourse(int score[M][M],double ave2[]);//计算每门课程的平均分 int main() { int i,j,score[M][M]; double ave1[M],ave2[M]; readScore(score); aveforStud(score,ave1); aveforCourse(score,ave2); printf(" 语文 数学 英语 总分 平均分"); for(i=0;i<5;i++) { printf("\n"); for(j=0;j<4;j++) { printf("%10d",score[i][j]); } printf("%12.2f",ave1[i]); } printf("\n"); printf("平均分"); for(j=0;j<N;j++) { printf("%4.2f ",ave2[j]); } return 0; } void readScore(int score[M][M]) { int i,j,sum=0; printf("输入成绩\n"); for(i=0;i<M;i++) { sum=0; printf("输入第%d个学生的成绩:\n",i+1); for(j=0;j<N;j++) { scanf("%d",&score[i][j]); sum+=score[i][j]; } score[i][3]=sum; } } void aveforStud(int score[M][M],double ave1[]) { int i,j,sum; for(i=0;i<M;i++) { sum=0; for(j=0;j<N;j++) { sum+=score[i][j]; } ave1[i]=(double)sum/N; } } void aveforCourse(int score[M][M],double ave2[]) { int i,j,sum; for(j=0;j<N;j++) { sum=0; for(i=0;i<M;i++) { sum+=score[i][j]; } ave2[j]=(double)sum/M; } }
2.求任意方阵每行、每列、两对角线上元素之和。
#include <stdio.h> #define N 100 int main() { int a[N][N],i,j,m,n=0,sum=0; printf("输入行数\n"); scanf("%d",&m); for(i=0;i<m;i++) { printf("\n"); for(j=0;j<m;j++) { n++; a[i][j]=n; printf("%4d",n); } } printf("\n"); for(i=0;i<m;i++) { sum=0; for(j=0;j<m;j++) { sum+=a[i][j]; } printf("第%d行的和为%d\n",i+1,sum); } for(j=0;j<m;j++) { sum=0; for(i=0;i<m;i++) { sum+=a[i][j]; } printf("第%d列的和为%d\n",j+1,sum); } sum=0; for(i=0;i<m;i++) { for(j=0;j<m;j++) { if(i==j) { sum+=a[i][j]; } } } printf("从左上到右下的对角线的和为%d\n",sum); sum=0; for(i=0;i<m;i++) { for(j=m;j>=0;j--) { if(i==j) { sum+=a[i][j]; } } } printf("从右上到左下的对角线的和为%d\n",sum); return 0; }
实验总结:1.注意使用一维或二维数组时,避免越界现象,造成输出错误结果。
2.在输出表格形式的数据时使用二维数组。
3.编写程序前一定要先思考大体程序结构,在进行编写。
4.调用函数时,必须是已有函数,认真,细心。
标签:学生 使用 函数 ges 实验 div 维数 include 数组
原文地址:http://www.cnblogs.com/a378/p/6141550.html