1.有5名学生,每名学生有语文、数学和外语3门课的考试成绩。编程统计各学生的总分和平均分以及所有学生各科的平均分。要求成绩在程序中初始化,结果以表格的形式输出。
#include<stdio.h> #define N 5 int main() { int a[5][3],i,j,sumA=0,sum1; double sum[N],n,ave=0; printf("input the score: "); for(i=0;i<5;i++) { printf("输入第%d个学生的成绩: ",i+1); for(j=0;j<3;j++) { scanf("%d",&a[i][j]); } } for(i=0;i<5;i++) { for(j=0;j<3;j++) { sumA=sumA+a[i][j]; ave=(double)sumA/15; } } for(i=0;i<5;i++) { sum1=0; for(j=0;j<3;j++) { sum1=sum1+a[i][j]; sum[i]=(double)sum1/3; } } printf ("语文 数学 英语 平均分 "); for(i=0;i<5;i++) { for(j=0;j<3;j++) { printf ("%3d ",a[i][j]); } printf(" %.2f ",sum[i]); } printf("五个学生总分%d,平均分%.2lf",sumA,ave) ; return 0; }
2.求任意方阵每行、每列、两对角线上元素之和。
#include <stdio.h> #define N 100 int main() { int a[N][N],i,j,x,n=0,sum=0; printf("输入行数 "); scanf("%d",&x); for(i=0;i<x;i++) { printf(" "); for(j=0;j<x;j++) { n++; a[i][j]=n; printf("%4d",n); } } printf(" "); for(i=0;i<x;i++) { sum=0; for(j=0;j<x;j++) { sum+=a[i][j]; } printf("第%d行的和为%d ",i+1,sum); } for(j=0;j<x;j++) { sum=0; for(i=0;i<x;i++) { sum+=a[i][j]; } printf("第%d列的和为%d ",j+1,sum); } sum=0; for(i=0;i<x;i++) { for(j=0;j<x;j++) { if(i==j) { sum+=a[i][j]; } } } printf("从左上到右下的对角线的和为%d ",sum); sum=0; for(i=0;i<x;i++) { for(j=x;j>=0;j--) { if(i==j) { sum+=a[i][j]; } } } printf("从右上到左下的对角线的和为%d ",sum); return 0; }
实验总结
1.定义函数时要想清楚有没有返回值.
2.数字的初始值一定要定义.
3.字符的类型要想好.
4.尽量简化程序 ,比如相同的循环可以直接套在一个循环里.
5.二维数组的行和列要分清。