c语言问题啊,代码有点问题

题目:有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;
}


注意字符串的输入,用数组表示字符串时,怎么给数组中输入字符串以及怎么打印这个字符串。
感觉你把结构体的数组和数组表示字符串搞混

img

#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;
}