我写了一个小代码来获取' n'学生人数。 但在运行该程序后,我遇到了段错误。请找到以下代码。
struct students
{
char name[20];
int age;
int id;
}student[100];
int main()
{
int count;
int no_students;
printf("Enter no of students");
scanf("%d",&no_students);
for (count = 1 ; count <= no_students ; count++)
{
printf("Enter the details for student%d\n",count);
printf("Name:");
scanf("%s",student[count].name);
printf("Age:");
scanf("%d",student[count].age);
printf("ID:");
scanf("%d",student[count].id);
}
return 0;
}
root@debian:/home/renga/C_code# ./nike
Enter no of students3
Enter the details for student1
Name:renga
Age:12
Segmentation fault
答案 0 :(得分:0)
遇到问题,在scanf中错过了参考运算符。
printf("Age:");
scanf("%d",&(student[count].age));
printf("ID:");
scanf("%d",&(student[count].id));
答案 1 :(得分:0)
这可能不是问C语言帮助/语法问题的合适组。我建议你阅读一本优秀的C编程语言书:http://www.cprogramming.com/tutorial/c-tutorial.html
话虽如此,问题是,您正在尝试错误地读取您的int数据类型(age&amp; id)值。您需要将值读入变量的地址,如下所示......
scanf("%d",&student[count].age);