有n个学生,每个学生的数据包括学号、姓名和3门课的成绩,用键盘输入n个学生的数据 5

有n个学生,每个学生的数据包括学号、姓名和3门课的成绩,用键盘输入n个学生的数据,要求打印出每个学生3门课的平均成绩,以及最高分的学生的数据(学号、姓名、3门课的成绩和平... 有n个学生,每个学生的数据包括学号、姓名和3门课的成绩,用键盘输入n个学生的数据,要求打印出每个学生3门课的平均成绩,以及最高分的学生的数据(学号、姓名、3门课的成绩和平均分数)
#include<stdio.h>
#define MAX 100
struct Student
{
char name[20];
int number;
int s[3];
int average;
};struct Student stu[MAX];
int main()
{
int n,i,j,m,max;
printf("请输入人数:");
scanf("%d",&n);
printf("请依次输入每个学生的姓名、学号、及三门课成绩:\n");
for(i=0;i<n;i++)
{
printf("请输入第%d人的数据:\n",i+1);
scanf("%s%d",stu[i].name,&stu[i].number);
for(j=0;j<3;j++)
scanf("%d",stu[i].s[j]);
printf("/n");
}
for(i=0;i<n;i++)
{
printf("%s%d",stu[i].name,stu[i].number);
for(j=0;j<3;j++)
printf("%d",stu[i].s[j]);
printf("\n");
}
for(i=0;i<n;i++)
{
stu[i].average=0;
for(j=0;j<3;j++)
stu[i].average+=stu[i].s[j];
stu[i].average=stu[i].average/3;
}
max=stu[0].average=0;
for(i=0;i<n;i++)
if(stu[i].average>max)
{
max=stu[i].average;
m=i;
}
printf("平均分最高同学数据:\n");
printf("%s%d%d%d%d%d%d",stu[i].name,stu[i].number,stu[i].s[1],stu[i].s[2],stu[i].s[3],stu[i].average);
return 0;
}
大家看一下为什么我输入了第一个学生的数据之后,按回车没法输入接下来的呢?
展开
 我来答
百度网友cd3d6c4
2013-06-07 · TA获得超过315个赞
知道小有建树答主
回答量:262
采纳率:0%
帮助的人:279万
展开全部
已帮你改好

#include<stdio.h>
#define MAX 100
struct Student
{
char name[20];
int number;
int s[3];
int average;
};struct Student stu[MAX];
int main()
{
int n,i,j,m,max;
printf("请输入人数:");
scanf("%d",&n);
printf("请依次输入每个学生的姓名、学号、及三门课成绩:\n");
for(i=0;i<n;i++)
{
printf("请输入第%d人的数据:\n",i+1);
scanf("%s%d",stu[i].name,&stu[i].number);
for(j=0;j<3;j++)
scanf("%d",&stu[i].s[j]);//========================这里加个&
printf("/n");
}
for(i=0;i<n;i++)
{
printf("%s%d",stu[i].name,stu[i].number);
for(j=0;j<3;j++)
printf("%d",stu[i].s[j]);
printf("\n");
}
for(i=0;i<n;i++)
{
stu[i].average=0;
for(j=0;j<3;j++)
stu[i].average+=stu[i].s[j];
stu[i].average=stu[i].average/3;
}
max=stu[0].average=0;
for(i=0;i<n;i++)
if(stu[i].average>max)
{
max=stu[i].average;
m=i;
}
printf("平均分最高同学数据:\n");
printf("%s%d%d%d%d%d%d",stu[i].name,stu[i].number,stu[i].s[1],stu[i].s[2],stu[i].s[3],stu[i].average);
return 0;
}
希望回答能帮到你,望采纳!
充诗丹0h5973
2016-06-12 · TA获得超过473个赞
知道小有建树答主
回答量:627
采纳率:100%
帮助的人:239万
展开全部

#include<stdio.h>

#define MAX 100

struct Student

{

char name[20];

int num;

int score[3];

}boy1,boy2;

int main()

{

int n,i,x=0,y=0,z=0;

scanf("%d",&n);

for(i=1;i<=n;i++)

{

scanf("%d%s%d%d%d",&boy1.num,&boy1.name,&boy1.score[0],&boy1.score[1],&boy1.score[2]);

if(boy1.score[0]+boy1.score[1]+boy1.score[2]>boy2.score[0]+boy2.score[1]+boy2.score[2]||i==1)

    boy2=boy1;

x+=boy1.score[0];

y+=boy1.score[1];

z+=boy1.score[2];

}

printf("%d %d %d\n%d %s %d %d %d",x/n,y/n,z/n,boy2.num,boy2.name,boy2.score[0],boy2.score[1],boy2.score[2]);

return 0;

}


本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
在兽康0V
推荐于2018-02-23
知道答主
回答量:1
采纳率:100%
帮助的人:933
展开全部
#include<stdio.h>
#define MAX 100
struct Student
{
char name[20];
int number;
float s[3];
float average;
char c[20];
};struct Student stu[MAX];
int main()
{
int n,i,j,m,max;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%s%s%d",stu[i].name,stu[i].c,&stu[i].number);
for(j=0;j<3;j++)
scanf("%f",&stu[i].s[j]);
}
for(i=0;i<n;i++)
{
stu[i].average=0;
for(j=0;j<3;j++)
stu[i].average+=stu[i].s[j];
stu[i].average=stu[i].average/3;
}
for(i=0;i<n;i++)
{
printf("%s %.1f",stu[i].name,stu[i].average);
printf("\n");
}
for(i=0;i<n;i++)
{
stu[i].average=0;
for(j=0;j<3;j++)
stu[i].average+=stu[i].s[j];
stu[i].average=stu[i].average/3;
}
max=stu[0].average=0;
for(i=0;i<n;i++)
if(stu[i].average>max)
{
max=stu[i].average;
m=i;
}
printf("%d %s %s %.1f %.1f %.1f %.1f\n",stu[m].number,stu[m].c,stu[m].name,stu[m].s[0],stu[m].s[1],stu[m].s[2],stu[m].average);
return 0;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式