有关结构体的输入循环异常

问题遇到的现象和发生背景

educoder 头哥 结构体

```c

```本关任务:有n个学生的信息(包括学号,姓名,成绩),要求按照成绩的高低顺序输出学生的信息

问题相关代码,请勿粘贴截图

#include
#include
struct Students{
long number;
char name[20];
int grade;
};
int main(){
Students stu[10];
int n;
scanf("%d",&n);
for(int i=0;i
{
scanf("%l",&stu[i].number);
scanf("%s",stu[i].name);
scanf("%d",&stu[i].grade);
}
printf("666");
for(int i=0;i
{
for(int j=i+1;j
{
Students Stu;
if(stu[i].grade
{
Stu=stu[i];
stu[i]=stu[j];
stu[j]=Stu;
}
}
}
for(int i=0;i
{
printf("%l ",stu[i].number);
printf("%s ",stu[i].name);
printf("%d\n",stu[i].grade);
}
return 0;
}

运行结果及报错内容

img

我的解答思路和尝试过的方法

似乎跟输入的n也有关系

我想要达到的结果

整出输入

修改如下,供参考:

#include <stdio.h>
#include <stdlib.h>
struct Students {
    long number;
    char name[20];
    int grade;
};
int main() {
    Students stu[10];
    int n;
    scanf("%d", &n);
    for (int i = 0; i < n; i++){
        scanf("%ld",&stu[i].number);
        scanf("%s", stu[i].name);
        scanf("%d", &stu[i].grade);
    }
    printf("666\n");
    for (int i = 0; i < n - 1; i++) {
        for (int j = i + 1; j < n; j++){
            Students Stu;
            if (stu[i].grade < stu[j].grade)
            {
                Stu = stu[i];
                stu[i] = stu[j];
                stu[j] = Stu;
            }
        }
    }
    for (int i = 0; i < n; i++) {
        printf("%ld ", stu[i].number);
        printf("%s ",  stu[i].name);
        printf("%d\n", stu[i].grade);
    }
    return 0;
}

麻烦你看一下自己贴出来的代码吧,根本没法阅读啊,都不完整,用代码块格式化一下