1、實驗內容 編程
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.求任意方陣每行、每列、兩對角線上元素之和。spa
# 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; }
二.實驗總結:code
1.記住加‘&’blog
2.注意賦初值數學
3.在第一題主函數要將所需輸出的值嵌套在for循環中io
4.注意變量名和地址名不能相同for循環
5..表格的輸出使用\t,表示水平製表位。class