用C语言编写程序,完成以下功能: (1) 有5个学生,每个学生的数据包括学号、姓名、3门课的成绩

用C语言编写程序,完成以下功能:(1)有5个学生,每个学生的数据包括学号、姓名、3门课的成绩(2)用一个函数input从键盘输入5个学生的数据(3)用一个函数averag... 用C语言编写程序,完成以下功能:
(1) 有5个学生,每个学生的数据包括学号、姓名、3门课的成绩
(2) 用一个函数input从键盘输入5个学生的数据
(3) 用一个函数average求总平均分
(4) 用一个函数max找出总分最高学生的数据
(5) 输出3门课总平均成绩,以及最高分学生的数据
用结构体回答。
就是输出3门课总平均成绩,然后还要输出最高分学生的数据(学号、姓名、3门课的成绩)
展开
 我来答
尘缘若梦fs
2010-12-17
知道答主
回答量:11
采纳率:0%
帮助的人:11万
展开全部
#include <stdio.h>

#define STUDENT 2

typedef struct tagSTU
{
char name[11] ;
char stunum[11] ;
float score1,score2,score3 ;
float total,aver ;
} STU;

void input(STU *stu, int num) //stu为学生数组的首地址,num为数组长度
{
int i ;

printf("请输入%d个学生的基本情况: \n",num) ;
printf("姓名 学号 成绩一 成绩二 成绩三\n") ;
for(i=0; i<num; i++)
{
scanf("%s%s%f%f%f",&stu[i].name,&stu[i].stunum,&stu[i].score1,
&stu[i].score2,&stu[i].score3) ;
}
}

float average(STU *stu, int num) //stu为学生数组的首地址,num为数组长度,返回总平均成绩
{
int i ;
float avertotal = 0 ;

for(i=0; i<num; i++)
{
stu[i].total = 0 ;
stu[i].total = stu[i].score1+stu[i].score2+stu[i].score3 ;
stu[i].aver = stu[i].total/3 ;
avertotal += stu[i].aver ;
}
return avertotal/num ;
}

void max(STU *stu, int num, STU *stuRev, int *stuRevNum) //stu为学生数组的首地址,num为数组长度
//stuRev表示要接收的数组,stuRevNum表示最终接收的个数,即最高成绩同学的个数(有可能不止一个同学)
{
STU temp[5] ;
float maxtotal = 0 ;
int i ,temp_index=0 ;

for(i=0; i<num; i++)
{
if(stu[i].total>maxtotal)
{
maxtotal = stu[i].total ;
temp[0] = stu[i] ;
temp_index = 0 ;
}
else if(stu[i].total==maxtotal)
{
temp[++temp_index] = stu[i] ;
}
}
for(i=0;i<=temp_index;i++)
{
stuRev[i] = temp[i] ;
}
*stuRevNum = temp_index+1 ;
}

void main()
{
STU stu[STUDENT] ;
STU stumax[STUDENT] ;
int stumax_num, i ;
float avertotal ;

input(stu,STUDENT) ;
avertotal = average(stu,STUDENT) ;
max(stu,STUDENT,stumax,&stumax_num) ;

//输出结果
printf("3门课总平均成绩: %4.2f\n",avertotal) ;
printf("最高分同学有%d个: \n",stumax_num) ;
printf("姓名 学号 成绩一 成绩二 成绩三 \n") ;
for(i=0; i<stumax_num; i++)
{
printf("%4s %4s %-4.2f %-4.2f %-4.2f\n",stumax[i].name,stumax[i].stunum,
stumax[i].score1,stumax[i].score2,stumax[i].score3) ;
}
}
喆盈盈
2010-12-14
知道答主
回答量:24
采纳率:0%
帮助的人:0
展开全部
jiadan
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
欧阳神华92
2010-12-13
知道答主
回答量:36
采纳率:0%
帮助的人:11.5万
展开全部
输出3门课总平均成绩,以及最高分学生的数据 什么意思
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式