C-涉及阵列时的Printf复制
我希望这不是堆栈溢出的基本问题。但是我有一个查询,它试图确定数组中的等级数量,然后要求用户输入每个等级。看起来是这样的:C-涉及阵列时的Printf复制,c,C,我希望这不是堆栈溢出的基本问题。但是我有一个查询,它试图确定数组中的等级数量,然后要求用户输入每个等级。看起来是这样的: #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
#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;
}
#包括
内部主(空)
{
整数大小;
printf(“在数组中输入分数:”);
scanf(“%i”,&size);/*存储数组中的等级数量*/
煤焦等级[尺寸];
int i;
对于(i=0;i
我希望int I后面的第一行读作“输入成绩:”,但它看起来像是“输入成绩:”
我不明白为什么它说第二次进入年级,而没有在第一次“进入年级”时先征求我的意见。任何建议都将不胜感激 您的第一个
scanf
将\n
留在后面,然后在下次自动再次读取它,就像您按下enter键一样(因此换行符存储在数组中)。您可以使用“%c”
来解决这个问题。空格将删除所需字符之前的任何换行符或空格。您的第一个scanf
将\n
留在后面,然后在下次自动读取它,就像您按下enter键一样(因此换行符存储在数组中)。您可以使用“%c”
来解决这个问题。空格将删除所需字符前的任何换行符或空格。与您的问题无关,但您应该检查大小
是否具有合理的值。如果用户输入了一个大数字,程序将崩溃。与您的问题无关,但您应该检查size
是否具有合理的值。如果用户输入一个大数字,程序就会崩溃。