当前位置: 代码迷 >> C语言 >> [求助]从键盘输入10个姓名和成绩,将第一个大于90的学生姓名显示输出
  详细解决方案

[求助]从键盘输入10个姓名和成绩,将第一个大于90的学生姓名显示输出

热度:244   发布时间:2006-02-16 17:37:00.0
[求助]从键盘输入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语言误区" 好像是

如果不如此,你的程序win-TC下无法正常运行。你可以找个这编译器试下,我已测试过


----------------解决方案--------------------------------------------------------