定义一个结构用来保存学员的信息,学号,姓名,C课程成绩,Java课程成绩,并用函数计算平均成绩

来源:百度知道 编辑:UC知道 时间:2024/06/30 04:11:44
#include<stdio.h>
#include<string.h>
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("\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); 接受, 所以出现了你发现的情况.

fflush(stdin);
去除这段代码。

修改如下:
#include<stdio.h>
#include<string.h>
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].nam