我目前正在尝试为我的入门C课程制作一个学生数据库系统。我正在研究向数据库中添加新学生的功能,以便它可以显示出来。然而,每当我试图打印出数组中结构体的每个单独的功能时,它都没有返回我想要的结果。浮点数变为0,字符串不可见。
对于上下文,下面是用于显示数组中每个元素的代码
void displayStudents() {
printf("\t\tList of Student Information\n");
printf("- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n ");
printf("|No.| \t \t \t Name \t \t \t |\t Major \t\t| GPA |");
printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n");
int i;
for (i = 0; i < (currentEntries); i++) {
printf("%s",listOfStudents[currentEntries].name);
printf("%f",listOfStudents[currentEntries].gpa);
printf("%s",listOfStudents[currentEntries].major);
// these print statemnts above print "", 0, and "" respectively.
}
}
以下是用于将新学生添加到数组中的函数
x一个一个一个一个x一个一个二个x
下面是在main()中调用它们的方式
scanf("%d", &selection);
switch(selection) {
case 1:
displayStudents();
promptKeyPress(&inMenu);
break;
case 2:
addNewStudents();
promptKeyPress(&inMenu);
break;
default:
programRunning = false;
break;
此外,currentEntries和listOfStudents都定义为全局变量
int currentEntries = 0;
student listOfStudents[20];
所以,我的问题是,我应该如何处理这个问题,以便displayStudents函数能够打印出我输入的正确值(学生姓名、专业和gpa)?任何帮助都将不胜感激。谢谢!
1条答案
按热度按时间f4t66c6m1#
我认为问题就在这里:
索引错误。请将循环内的
currentEntries
替换为i
: