当前位置:首页 » 编程语言 » 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;
}