可是运行时老是输入一堆“烫”
难道我很烫吗??答案当然是否定的```
那是为什么呢``???
请高手门指点下```
我的代码是这样的:
#include<stdio.h>
#include<stdlib.h>
char flag='y';
struct info
{
char name[20];
int grade1;
int grade2;
int grade3;
float avg;
};
int input(struct info stu[])
{
int count=1;
while(flag=='y'||flag=='Y')
{
printf("\n请输入第%d个学生的信息:\n",count);
printf("全输入学生的名字:");
fflush(stdin);
gets(stu[count].name);
printf("第一门成绩是:\n");
scanf("%d",&stu[count].grade1);
printf("第二门成绩是:\n");
scanf("%d",&stu[count].grade2);
printf("第三门成绩是:\n");
scanf("%d",&stu[count].grade3);
count++;
printf("要继续吗?(y/n)");
scanf("%1s",&flag);
}
return count;
}
void arrange(struct info stu[],int count)
{
struct info temp;
for(int a=0;a<count-1;a++)
{
for(int b=1;b<count;b++)
{
if(stu[a].avg<=stu[b].avg)
{
temp=stu[a];
stu[b]=temp;
stu[a]=temp;
}
}
}
}
void display(struct info stu[],int count)
{
printf("学生成绩如下:\n");
for(int a=0;a<count;a++)
{
stu[a].avg=(float)((stu[a].grade1+stu[a].grade2+stu[a].grade3)/3.0);
printf("姓名\t\t平均成绩\n");
printf("%s\t\t%3f",stu[a].name,stu[a].avg);
}
}
void main()
{
int num=0;
struct info stu[50];
char flag1='y';
while(flag1=='y'||flag1=='Y')
{
num=input(stu);
if(flag=='n'||flag=='N')
{
display(stu,num);
arrange(stu,num);
display(stu,num);
}
printf("要继续吗?(y/n)");
scanf("%1s",&flag1);
if(flag1=='n'||flag1=='N')
break;
num++;
}
}
帮忙看看```
#include<stdio.h>
#include<stdlib.h>
char flag='y';
struct info
{
char name[20];
int grade1;
int grade2;
int grade3;
float avg;
};
int input(struct info stu[])
{
int count=1;
while(flag=='y'||flag=='Y')
{
printf("\n请输入第%d个学生的信息:\n",count);
printf("全输入学生的名字:");
fflush(stdin);
gets(stu[count-1].name);
printf("第一门成绩是:\n");
scanf("%d",&stu[count-1].grade1);
printf("第二门成绩是:\n");
scanf("%d",&stu[count-1].grade2);
printf("第三门成绩是:\n");
scanf("%d",&stu[count-1].grade3);
printf("要继续吗?(y/n)");
scanf("%1s",&flag);
if(flag=='y'||flag=='Y')
{
count++;
}
else
break;
}
return count;
}
void arrange(struct info stu[],int count)
{
struct info temp;
for(int a=0;a<count-1;a++)
{
for(int b=1;b<count;b++)
{
if(stu[a].avg<=stu[b].avg)
{
stu[a]=stu[b];
stu[b]=temp;
temp=stu[a];
}
}
}
}
void display(struct info stu[],int count)
{
printf("学生成绩如下:\n");
for(int a=0;a<count;a++)
{
stu[a].avg=(float)((stu[a].grade1+stu[a].grade2+stu[a].grade3)/3.0);
printf("姓名\t\t平均成绩\n");
printf("%s\t\t%3f",stu[a].name,stu[a].avg);
}
}
void main()
{
int num=0;
struct info stu[50];
char flag1='y';
while(flag1=='y'||flag1=='Y')
{
num=input(stu);
if(flag=='n'||flag=='N')
{
printf("***********************************************\n");
display(stu,num);
arrange(stu,num);
printf("\n***********************************************\n");
display(stu,num);
printf("\n***********************************************\n");
}
printf("要继续吗?(y/n)");
scanf("%1s",&flag1);
if(flag1=='n'||flag1=='N')
break;
}
}
完美````
哈啊 ``
谢谢``
#include<stdio.h>
#include<stdlib.h>
char flag='y';
struct info
{
char name[20];
int grade1;
int grade2;
int grade3;
float avg;
};
int input(struct info stu[])
{
int count=1;
while(flag=='y'||flag=='Y')
{
printf("\n请输入第%d个学生的信息:\n",count);
printf("全输入学生的名字:");
fflush(stdin);
gets(stu[count-1].name);
printf("第一门成绩是:\n");
scanf("%d",&stu[count-1].grade1);
printf("第二门成绩是:\n");
scanf("%d",&stu[count-1].grade2);
printf("第三门成绩是:\n");
scanf("%d",&stu[count-1].grade3);
printf("要继续吗?(y/n)");
scanf("%1s",&flag);
if(flag=='y'||flag=='Y')
{
count++;
}
else
break;
}
return count;
}
void arrange(struct info stu[],int count)
{
struct info temp;
for(int a=0;a<count-1;a++)
{
for(int b=1;b<count;b++)
{
if(stu[a].avg<=stu[b].avg)
{
stu[b]=temp;
stu[a]=stu[b];
temp=stu[a];
}
}
}
}
void display(struct info stu[],int count)
{
printf("学生成绩如下:\n");
for(int a=0;a<count;a++)
{
stu[a].avg=(float)((stu[a].grade1+stu[a].grade2+stu[a].grade3)/3.0);
printf("姓名\t\t平均成绩\n");
printf("%s\t\t%3f",stu[a].name,stu[a].avg);
}
}
void main()
{
int num=0;
struct info stu[50];
char flag1='y';
while(flag1=='y'||flag1=='Y')
{
num=input(stu);
if(flag=='n'||flag=='N')
{
printf("***********************************************\n");
display(stu,num);
arrange(stu,num);
printf("\n***********************************************\n");
display(stu,num);
printf("\n***********************************************\n");
}
printf("要继续吗?(y/n)");
scanf("%1s",&flag1);
if(flag1=='n'||flag1=='N')
break;
}
}
这样???