[求助]从键盘输入10个姓名和成绩,将第一个大于90的学生姓名显示输出
“从键盘输入10个姓名和成绩,将第一个大于90的学生姓名显示输出”我不会做啊。
----------------解决方案--------------------------------------------------------
#include<stdio.h>
struct student
{
char name[20];
float score;
};
int main()
{
struct student stu[10];
int i;
float temp;
for(i=0; i<10; i++)
{
gets(stu[i].name);
scanf("%f", &temp);
stu[i].score=temp;
}
for(i=0; i<10; i++)
{
if(stu[i].score>90) break;
}
puts(stu[i].name);
printf("%4.2f\n", stu[i].score);
getch();
return 0;
}
[此贴子已经被作者于2006-2-16 18:01:30编辑过]
----------------解决方案--------------------------------------------------------
for(i=0; i<10; i++) for(i=0; i<10; i++)
{ {
gets(stu[i].name); → fflush(stdin);
scanf("%f", &temp); gets(stu[i].name);
stu[i].score=temp; scanf("%f", &temp);
} stu[i].score=temp;
}
----------------解决方案--------------------------------------------------------
fflush(stdin);
这个用法是错误的 建议你搜索一下以前的文章 里面有讲解
好像叫 "C语言误区" 好像是
----------------解决方案--------------------------------------------------------
#include<stdio.h>
#define N 10
#define LEN 20
main()
{
char name[N][LEN];
float score[N];
int i;
for(i=0;i<N;i++)
{
gets(name[i]);
scanf("%f",&score[i]);
while(getchar()!='\n');
}
for(i=0;i<N;i++)
{
if(score[i]>90)
break;
}
if(i<N)
printf("%s",name[i]);
else
printf("No one's score more than 90");
getch();
}
----------------解决方案--------------------------------------------------------
谢谢各位
----------------解决方案--------------------------------------------------------
以下是引用stdio在2006-2-17 8:46:00的发言:
fflush(stdin);
这个用法是错误的 建议你搜索一下以前的文章 里面有讲解
好像叫 "C语言误区" 好像是
fflush(stdin);
这个用法是错误的 建议你搜索一下以前的文章 里面有讲解
好像叫 "C语言误区" 好像是
如果不如此,你的程序win-TC下无法正常运行。你可以找个这编译器试下,我已测试过
----------------解决方案--------------------------------------------------------