定义一个结构用来保存学员的信息,学号,姓名,C课程成绩,Java课程成绩,并用函数计算平均成绩
mip版 关注:52 答案:3 悬赏:60
解决时间 2021-01-27 18:47
已解决
2021-01-27 04:56
#include
#include
struct student{
char xh[20];
char name[20];
int ccj;
int javacj;
};
int avg(int ,int);
void main()
{
int i;
struct student st[5];
for (i=0;i<5;i++)
{
printf("\n请输入第%d个学员的信息:\n",i+1);
printf("输入学号:");
gets(st[i].xh);
fflush(stdin);
printf("输入姓名:");
gets(st[i].name);
fflush(stdin);
printf("输入C课程成绩:");
scanf("%d",&st[i].ccj);
printf("输入JAVA课程成绩:");
scanf("%d",&st[i].javacj);
}
printf("\n\n\n");
for(i=0;i<5;i++)
{
printf("\n\t第%d个学员的信息是:\n",i+1);
printf("\n学号:%s",st[i].xh);
printf("\n姓名:%s",st[i].name);
printf("\nC课程成绩:%d",st[i].ccj);
printf("\nJAVA课程成绩:%d",st[i].javacj);
printf("\n该学生的平均成绩是%d\n",avg(st[i].ccj,st[i].javacj));
}
}
int avg(int a,int b)
{
return (a+b)/2;
}
built没有错误 但是除了第一个学员的学号可以输入 其他的都不可以 希望高手帮我看下 谢谢了
最佳答案
2021-01-27 06:33
printf("\n请输入第%d个学员的信息:\n",i+1);
printf("输入学号:");
gets(st[i].xh);
fflush(stdin);
printf("输入姓名:");
gets(st[i].name);
fflush(stdin);
printf("输入C课程成绩:");
scanf("%d",&st[i].ccj);
printf("输入JAVA课程成绩:");
scanf("%d",&st[i].javacj);
//在这里加一句:
getchar();
因为上一行输入时有一个回车符. 如果不加这一行,回车符通过循环被前头的 gets(st[i].xh); 接受, 所以出现了你发现的情况.
全部回答
1楼
2021-01-27 07:55
fflush(stdin);
去除这段代码。
2楼
2021-01-27 07:00
修改如下:
#include
#include
struct student{
char xh[20];
char name[20];
int ccj;
int javacj;
};
int avg(int ,int);
void main()
{
int i;
struct student st[5];
for (i=0;i<5;i++)
{
printf("\n请输入第%d个学员的信息:\n",i+1);
printf("输入学号:");
gets(st[i].xh)
getch();
printf("输入姓名:");
gets(st[i].name);
getch();
printf("输入C课程成绩:");
scanf("%d",&st[i].ccj);
printf("输入JAVA课程成绩:");
scanf("%d",&st[i].javacj);
}
printf("\n\n\n");
for(i=0;i<5;i++)
{
printf("\n\t第%d个学员的信息是:\n",i+1);
printf("\n学号:%s",st[i].xh);
printf("\n姓名:%s",st[i].name);
printf("\nC课程成绩:%d",st[i].ccj);
printf("\nJAVA课程成绩:%d",st[i].javacj);
printf("\n该学生的平均成绩是%d\n",avg(st[i].ccj,st[i].javacj));
}
}
int avg(int a,int b)
{
return (a+b)/2;
}
我要举报
如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
点此我要举报以上信息!
推荐资讯
大家都在看