C语言编程:输入50个同学的成绩,计算平均值并输出大于平均值的学生序号和成绩,错误在哪?

#include<stdio.h>intmain(){inti;doublea,b,s,t,avera,averb;for(i=1,s=0,t=0;i<=50;i++){... #include<stdio.h>
int main ( )
{
int i;
double a,b,s,t,avera,averb;
for(i=1,s=0,t=0;i<=50;i++)
{
scanf("%lf%lf",&a,&b);
s=s+a;
t=t+b;
}
avera=s/50;
averb=t/50;
for(i=1;i<=50;i++)
{
if(a>avera)
printf("学生%d的科目1成绩为%lf",i,a);
}
for(i=1;i<=50;i++)
{
if(b>averb)
printf("学生%d的科目2成绩为%lf",i,b);
}
return 0;
}
展开
 我来答
cjj796
2013-11-06 · TA获得超过8701个赞
知道大有可为答主
回答量:1.3万
采纳率:68%
帮助的人:3313万
展开全部

你好!!

    程序改好了,运行的结果

    

完整的程序,你看看吧,满意请采纳

#include<stdio.h>
int main ( )
{
int renshu =50.0;   // 这里设定人数,为了方便,我调试设的是 3
int i;
double a[100],b[100],s,t,avera,averb;  // ab定义成数组 
for(i=1,s=0,t=0;i<=renshu;i++)
{
scanf("%lf %lf",&a[i],&b[i]);      // %lf 之间加上空格 
s=s+a[i];
t=t+b[i];
}

avera=s/renshu;
averb=t/renshu;
printf("科目1平均成绩为:%lf\n",avera);
printf("科目1平均成绩为:%lf\n",averb);

for(i=1;i<=renshu;i++)
{
if(a[i]>avera)
printf("学生%d的科目1成绩为%lf\n",i,a[i]);
}
for(i=1;i<=renshu;i++)
{
if(b[i]>averb)
printf("学生%d的科目2成绩为%lf\n",i,b[i]);
}
return 0;
}
z307242260
2013-11-06
知道答主
回答量:18
采纳率:0%
帮助的人:7.7万
展开全部
你五十个学生的成绩没有储存下来 用两个一维数组存吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ge2008ge12
2013-11-06 · TA获得超过1110个赞
知道小有建树答主
回答量:683
采纳率:100%
帮助的人:335万
展开全部
#include<stdio.h>

#define NUM 50
int main ( )
{
int i;
double a[NUM],b[NUM],s,t,avera,averb;
for(i=1,s=0,t=0;i<=NUM;i++)
{
scanf("%lf%lf",&a[i-1],&b[i-1]);
s=s+a[i-1];
t=t+b[i-1];
}
avera=s/NUM;
averb=t/NUM;
for(i=1;i<=NUM;i++)
{
if(a[i-1]>=avera)
printf("学生%d的科目1成绩为%lf\n",i,a[i-1]);
else
printf("学生%d的科目1成绩为%lf低于平均成绩%lf\n",i,a[i-1],avera);

}
for(i=1;i<=NUM;i++)
{
if(b[i-1]>=averb)
printf("学生%d的科目2成绩为%lf\n",i,b[i-1]);
else
printf("学生%d的科目2成绩为%lf低于平均成绩%lf\n",i,b[i-1],averb);
}
return 0;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
录像机pty
2013-11-06 · TA获得超过205个赞
知道答主
回答量:39
采纳率:0%
帮助的人:38.6万
展开全部
错在你最后两个for中的a和b是你最后输入的a,b
而不是你所期望的,每一个学生的成绩
改的程序如下,为了简单我把b,t去掉了,你理解下意思就好。
#include<stdio.h>
int main ( )
{
int i;
double a[50],s,avera;
for(i=1,s=0;i<=50;i++)
{
scanf("%lf",&a[i]);
s=s+a[i];
}
avera=s/50;
for(i=1;i<=50;i++)
{
if(a[i]>avera)
printf("%d %lf \n",i,a[i]);
}

return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式