當前位置:成語大全網 - 成語故事 - c語言編寫程序,從鍵盤輸入6名學生5門功課成績,分別統計出每個學生的平均成績

c語言編寫程序,從鍵盤輸入6名學生5門功課成績,分別統計出每個學生的平均成績

壹、問題分析

需要保存6名學生5門功課的成績,需要設計壹個6行5列大小的二維數組scores[6][5]來存儲30個成績數據。保存6名學生的平均成績,需要設計壹個6列大小的壹維數組來avgs[6]存儲平均成績。

為使程序具有更好的通用性,使用宏定義定義學生人數M和課程門數N。

計算每個學生的平均成績時,累加該行所有列的成績數據,並除以列大小即為該學生的平均成績。

二、參考程序

#include?<stdio.h>

#define?M?6 /*?學生人數?*/

#define?N?5 /*?課程門數?*/

/*?輸入row個學生col門課程的成績?*/

void?input(double?scores[][N],?int?row,?int?col);

/*?計算row個學生的平均成績並保存在avgs數組中?*/

void?average(double?scores[][N],?int?row,?int?col,?double?avgs[]);

/*?輸出所有學生的平均成績?*/

void?output(double?avgs[],?int?size);

void?main()

{

double?scores[M][N];

double?avgs[M];

input(scores,?M,?N);

average(scores,?M,?N,?avgs);

output(avgs,?M);

}

/*?輸入row個學生col門課程的成績?*/

void?input(double?scores[][N],?int?row,?int?col)

{

int?i,?j;

printf("請輸入%d個學生%d門課程的成績,每個學生成績在壹行,以空格分隔成績:\n",?row,?col);

for(i=0;?i<row;?i++)

{

for(j=0;?j<col;?j++)

{

scanf("%lf",?&scores[i][j]);

}

}

}

/*?計算row個學生的平均成績並保存在avgs數組中?*/

void?average(double?scores[][N],?int?row,?int?col,?double?avgs[])

{

int?i,?j;

for(i=0;?i<row;?i++)

{

avgs[i]?=?0.0;

for(j=0;?j<col;?j++)

{

avgs[i]?+=?scores[i][j];

}

avgs[i]?/=?col;

}

}

/*?輸出所有學生的平均成績?*/

void?output(double?avgs[],?int?size)

{

int?i;

printf("%6s%10s\n",?"序號",?"平均成績");

printf("----------------------------\n");

for(i=0;?i<size;?i++)

{

printf("%6d%10.2lf\n",?i+1,?avgs[i]);

}

}

三、運行測試