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;
} 展开
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;
} 展开
4个回答
展开全部
你好!!
程序改好了,运行的结果
完整的程序,你看看吧,满意请采纳
#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;
}
展开全部
你五十个学生的成绩没有储存下来 用两个一维数组存吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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;
}
#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;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
错在你最后两个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;
}
而不是你所期望的,每一个学生的成绩
改的程序如下,为了简单我把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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询