为什么我的程序在 scanf 之后停止工作?

why is my program stopped working after the scanf?

我尝试制作一个简单的程序来使用结构输入学生信息,我很困惑为什么我的程序在我输入信息后立即停止 这是代码

#include <stdio.h>
   struct studentScore {
   char nim[11];
   char name [30];
   char subjectCode [5];
   int sks;
   char grade;
   }students;


       int main(){
       int i,studNum;

        printf("Name : ");
        scanf("%s",students.name);

        printf("\nNIM :");
        scanf("%s",students.nim);

        printf("\nSubject Code :");
        scanf("%s",students.subjectCode);

        printf("\nSKS :");
        scanf("%d",&students.sks);    // Program Crash after i input the SKS

        printf("\nGrade :");
        scanf("%c",students.grade); 
        

    for(i=0;i<studNum;i++){
        printf("\nName : %s\n",students.name);
        printf("NIM  : %s\n",students.nim);
        printf("Subject Code  : %s\n",students.subjectCode);
        printf("SKS  : %d\n",students.sks);
        printf("Grade  : %c\n",students.grade);
    }
    return 0;
}

此语句中的参数

scanf("%c",students.grade);

必须是指向目标对象的指针并在转换说明符前放置一个空格

scanf( " %c", &students.grade );
       ^^^   ^^^

还有这个for循环

for(i=0;i<studNum;i++){

没有任何意义,至少因为变量 studNum 未初始化,并且您没有需要循环来输出其元素的数组。