C语言的一个找不出问题在哪儿的程序

来源:百度知道 编辑:UC知道 时间:2024/09/26 14:06:56
#include<stdio.h>
#include<string.h>
struct students
{
int num;
char name[20];
int score[3];
}student[5];
void main()
{
int i=0,j=0;
// void print(student);
for(i=0;i<5;i++)
{
printf("请输入第%d个同学的学号:",i+1);
scanf("%d",&student[i].num);putchar('\n');
printf("请输入第%d个同学的姓名:",i+1);
scanf("%d",&student[i].name);putchar('\n');
for(j=0;j<3;j++)
{printf("请输入第%d个同学的第%d门成绩:\n",i+1,j+1);
scanf("%d",&student[i].score[j]);}
//i++;
}

}
结果是:
请输入第1个同学的学号:1

请输入第1个同学的姓名:jk

请输入第1个同学的第1门成绩:/*在此没有等待输入,而后面也是一次就全部输出,没有等待输入
请输入第1个同学的第2门成绩:
请输入第1个同学的第3门成绩:
请输入第2个同学的学号:
请输入第2个同学的姓名:
请输入第2个同学的第1门成绩:
请输入第2个同学的第2门成绩:
请输入第2个同学的第3门成绩:
请输入第3个同学的学号:
请输入第3个同学的姓名:
请输入第3个同学的第1门成绩:
请输入第3个同学的第2门成绩:<

scanf("%d",&student[i].name); 应该改成

scanf("%s",&student[i].name);
输入串应该用s
改了后运行,在输入正确的情况下没有问题

scanf("%d",&student[i].name);putchar('\n');
for(j=0;j<3;j++)
&不可以引用在结构名前