所以我正在尝试编写一个程序,我需要在其中输入多个学生的姓名、姓氏、学生证、生日等信息。问题是我无法让它为所有学生打印信息。我编写的这个版本的代码只打印了变量,其中没有存储任何内容或带有一些奇怪的字符。在脚本的早期版本中,我输入的信息只会覆盖以前的信息,并且只会打印一个学生的信息。如果我没记错的话,我想我需要在 for 循环中进行一些更改。如果有人可以帮我一把,我将不胜感激。
这是代码:
#include <stdio.h>
#include <string.h>
#define students 200
typedef struct {
char name[20];
char surname[20];
int studentid[5];
int day[5];
int month[5];
int year[5];
}student;
int main(){
student a[students];
int j;
int n;
int i;
int choice;
for(i=0;i<=students;i++){
printf("\n===========================================================\n");
printf("\n1 Enter info for a student");
printf("\n2 Print all the students");
printf("\n3 End\n");
printf("\n===========================================================\n");
printf("\nChoose something ---> ");
scanf("%d", &choice);
switch(choice)
{
case 1:
printf("Enter name: \n");
scanf("%s", a[students].name);
printf("Enter surname: \n");
scanf("%s", a[students].surname);
printf("Enter student ID: \n");
scanf("%s", a[students].studentid);
printf("Enter day: \n");
scanf("%s", a[students].day);
printf("Enter month: \n");
scanf("%s", a[students].month);
printf("Enter year: \n");
scanf("%s", a[students].year);
break;
case 2:
for(i=0;i<students;i++)
{
printf("\nNome student: %s\nSurname student: %s\nStudent id: %s\nStudent Birthday: %s.%s.%s\n", a[i].name, a[i].surname, a[i].studentid, a[i].day, a[i].month, a[i].year);
}
break;
case 3:
break;
default:
printf("Choose again!\n");
}
}
return 0;
}
谢谢!