當前位置:首頁 » 編程語言 » c語言五名學生六門課程的成績
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言五名學生六門課程的成績

發布時間: 2023-05-19 08:18:25

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

一、問題分析

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

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

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


二、參考程序

#include<stdio.h>

#defineM6 /*學生人數*/
#defineN5 /*課程門數*/

/*輸入row個學生col門課程的成績*/
voidinput(doublescores[][N],introw,intcol);

/*計算row個學生的平均成績並保存在avgs數組中*/
voidaverage(doublescores[][N],introw,intcol,doubleavgs[]);

/*輸出所有學生的平均成績*/
voidoutput(doubleavgs[],intsize);

voidmain()
{
doublescores[M][N];
doubleavgs[M];

input(scores,M,N);

average(scores,M,N,avgs);

output(avgs,M);
}

/*輸入row個學生col門課程的成績*/
voidinput(doublescores[][N],introw,intcol)
{
inti,j;

printf("請輸入%d個學生%d門課程的成績,每個學生成績在一行,以空格分隔成績: ",row,col);
for(i=0;i<row;i++)
{
for(j=0;j<col;j++)
{
scanf("%lf",&scores[i][j]);
}
}
}

/*計算row個學生的平均成績並保存在avgs數組中*/
voidaverage(doublescores[][N],introw,intcol,doubleavgs[])
{
inti,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;
}
}

/*輸出所有學生的平均成績*/
voidoutput(doubleavgs[],intsize)
{
inti;

printf("%6s%10s ","序號","平均成績");
printf("---------------------------- ");
for(i=0;i<size;i++)
{
printf("%6d%10.2lf ",i+1,avgs[i]);
}
}


三、運行測試

② 輸入5名學生的學號和6門課程的成績, 統計並輸出各門課成績總成績及平均成績各門課程成績最高者學號

#include "stdio.h"
#define N 5
struct student
{
int num;
char name[20];
float sco[6];
float sum,ave;
}stu[N];
main()
{
int i,j;
void print(struct student stu[]);
printf("請輸入學生信息:\n");
printf("學號 姓名 高數 外培飢備語 計算肢啟機 政治 模電 體育\n");
for(i=0;i<N;i++)
{
scanf("%d %s",&stu[i].num,stu[i].name);
stu[i].sum=0;
for(j=0;j<6;j++)
{
scanf("%f",&stu[i].sco[j]);
stu[i].sum+=stu[i].sco[j];
}
stu[i].ave=stu[i].sum/6;
}
print(stu);

}
void print(struct student stu[])
{
int i,j;
printf("…………………………學生成績表…………………配毀………\n");
printf("學號 姓名 高數 外語 計算機 總分 平均分\n");
for(i=0;i<N;i++)
{
printf("%-5d%-8s",stu[i].num,stu[i].name);
for(j=0;j<6;j++)
printf("%-6.1f",stu[i].sco[j]);
printf("%-6.1f%-6.1f\n",stu[i].sum,stu[i].ave);
}
}

③ C語言求教,用函數調用求5門課程5名同學的各門各門課程的平均成績

#include
float
aver(float
sum){
sum=sum/5;
return
sum;
}
main()
{
int
a,b,c=1,ave,l,y;
float
sum=0;
for(a=0;a<5;a++)
{
for(b=0;b<5;b++)
{
printf("請輸入第%d名學生的第%d課程各的成績:\n",c,b+1);
scanf("%d",&l);
sum=sum+l;//這里將c改成l
}
printf("第%d門課的平均成績為:%f\n",c,aver(sum));
printf("\n");
c++;//這里用分號換行
sum=0;
}
}
//還有將sum定義為float類型

④ 編寫C語言程序,輸入一個同學的六門功課的成績,計算該同學的總分和平均分(保留兩位小數)。

#include "談敬肢stdio.h"
int main()
{
double x[6],sum=0;
int i,n=6;
for(i=0;i<n;i++)
{
scanf("%lf",&x[i]);
sum+=x[i];
}
printf("總分:%.2lf 平均含世分:%.2lf\n"稿乎,sum,sum/n);
return 0;
}