我希望这不是堆栈溢出问题的基础.但是我有一个查询,它试图确定数组中的成绩数量,然后询问每个等级的用户输入.它看起来像这样:
#include <stdio.h>
int main (void)
{
int size;
printf ("Enter The Amount Of Grades In Your Array: ");
scanf("%i", &size);/*Stores Amount Of Grades In The Array*/
char myGrades[size];
int i;
for (i = 0; i < size; ++i)
{
printf ("Enter the grade:");
scanf ("%c",&myGrades[i]);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我期待int i之后的第一行读取,"Enter The Grade:"但它看起来像"Enter The Grade:""Enter The Grade:"
我不明白为什么它说第二次进入等级而没有先要求我在第一次"进入等级"时输入.我们欢迎所有的建议!
你的第一个scanf是离开\n后面,然后在下次再次自动读取它,好像你按下了enter(所以换行符存储在你的数组中).您可以通过使用" %c"来解决这个问题.在您想要的角色之前,空间将摆脱任何换行符或空格.