0

这是一个家庭作业问题。我有一个正在读取输入的 C 程序。它需要一些用户想要记录的人,在这里由变量选择指定,然后将他们的名字和姓氏以及年龄记录到各自的数组中。我有一个 while 循环来获取用户的输入,但是通过 while 循环的第一个循环完全跳过了获取第一条输入。但是,在第一次循环之后,它确实正确记录了用户的输入。我想知道我可能做错了什么。这是我的while循环:

char firstName[choice][20];
char lastName[choice][20];
int age[choice][3];
while(i < choice + 1)
{
  fputs("Enter the first name of the person  ", stdout);
  fflush(stdout);
  fgets(firstName[i], sizeof firstName[i], stdin);

  fputs("Enter the last name of the person  ", stdout);
  fflush(stdout);
  fgets(lastName[i], sizeof lastName[i], stdin);

  fputs("Enter the age of the person  ", stdout);
  fflush(stdout);
  fgets(age[i], sizeof age[i], stdin);

  i++;
}

任何帮助将不胜感激。

4

1 回答 1

0

以这种方式修复您的代码

i = 0;
while(i < choice)

while 应该停在choice - 1而不是choice因为 C 中的数组索引从0.

0,1,2,...,(choice-1) //==> the total is (choice) indices
于 2013-04-29T16:46:59.980 回答