c语言程序输出成绩高的学生的学号姓名,C语言编程题,三个学生,两门课程,要求输入他们的学号,姓名和两门成绩。最后输出其中平均分最高的学生...

满意答案

dcebd7a0de6265b6ccae5ead692f1eab.png

zjmsq

2013.12.25

dcebd7a0de6265b6ccae5ead692f1eab.png

采纳率:55%    等级:11

已帮助:5399人

你的程序有两个问题:

一个是学号的储存,一个是学生总分的储存,学号只是一个号码,并不能以数组的形式储存,而你的程序中用来储存学号的是int name[10],这是不正确的。

另一个,你虽然在结构中定义了sum来储存总分,但并没有在主函数的语句中给stu[i].sum进行任何形式的赋值,且计算sum总分的for循环少了括号。当for循环执行的语句超过或等于两句时,需要用括号括起来。

修改后如下:

struct student

{

int num; //将num[10]改成num来储存学号,因为学号一般只是一个数字

char name[10];

float sco[2];

float aver;

float sum;

};

main()

{

struct student stu[3];

int i,j;

float max,sum,aver;

for(i=0;i<3;i++)

{

scanf("%d%s",&stu[i].num,stu[i].name);

sum=0;

for(j=0;j<2;j++)

{ //此处增加了花括号

scanf("%f",&stu[i].sco[j]);

sum=sum+stu[i].sco[j];

}

stu[i].sum=sum; //此处将总分存入了结构中存总分的变量中

stu[i].aver=sum/2;

}

max=stu[0].aver;

for(i=0;i<3;i++)

if(stu[i].aver>max) max=stu[i].aver;

printf("%d%s",stu[i].num,stu[i].name);

printf("%f",stu[i].sum);

}

11分享举报

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值