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

这段代码展示了如何使用C语言编写程序,输入多个学生的信息,包括姓名、学号和三门课程的成绩,计算平均分,并找出成绩最高的学生。程序首先定义了学生结构体,然后通过`input`函数获取学生数据,`average`函数计算平均分,`max`函数找出最高分的学生。最后,程序打印出总平均成绩和最高分学生的详细信息。
摘要由CSDN通过智能技术生成

匿名用户

1级

2010-12-13 回答

#include

#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

{

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

{

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

{

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

{

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) ;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值