题目:有n个学生,每个学生的数据包括学号、姓名和成绩,要求输出成绩优秀(大于等于90分)学生的信息(包括学号、姓名和整型成绩)。如果没有符合条件的,则输出“No”。
输入:有n+1行,第1行包含1个整数,即学生数n;接下来有n行,每行有3个数据项,分别表示学号、姓名和成绩,数据项之间用空格隔开。
输出:有3行,有多行,每行包含3个数据项,即学号、姓名和成绩,数据项之间用空格隔开。
例子:
输入:
3
1001 Make 86
1002 Linda 58
1003 Jone 90
输出:
1003 Jone 90
我的代码,有问题:
#include <stdio.h>
struct student
{
int x;
char name[10];
int c;
}stu[22];
int main()
{
int n,i,j=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d%s%d",&stu[i].x,&stu[i].name[i],&stu[i].c);
for(i=1;i<=n;i++)
{
if(stu[i].c>=90)
{
printf("%d %s %d",stu[i].x,stu[i].name[i],stu[i].c);
j=1;
}
}
if(j=0)
printf("No");
return 0;
}
注意字符串的输入,用数组表示字符串时,怎么给数组中输入字符串以及怎么打印这个字符串。
感觉你把结构体的数组和数组表示字符串搞混
#include <stdio.h>
struct student
{
int x;
char name[10];
int c;
} stu[22];
int main()
{
int n,i,j=0;
scanf("%d",&n);
for(i=1; i<=n; i++)
scanf("%d %s %d",&stu[i].x,stu[i].name,&stu[i].c);
for(i=1; i<=n; i++)
{
if(stu[i].c>=90)
{
printf("%d %s %d",stu[i].x,stu[i].name,stu[i].c);
j=1;
}
}
if(j==0)//改成==
printf("No");
return 0;
}