Do ループを移動しようとしたり、別のループを追加して入れ子にしたりすると、奇妙な問題が発生します。以下に表示されている場所に DO を配置します。正常にループします。
{
float numbers[MAX_DATA];
printf("Please Eneter the Amount of Numbers You Would Like to Use\n");
scanf("%d",&amount);
if (amount>MAX_DATA)
{
printf("Your entry was too big");
}
else
{
input(numbers,amount);
do
{
printf("\nStatistical Calculator Menu\n");
printf("\n(1) Mean\n(2) Standard Deviation\n(3) Range\n(4) Restart/Exit\n");
scanf("%d",&input2);
if (input2==1)
{
mean(numbers,amount);
}
else if (input2==2)
{
standard(numbers,amount);
}
else if (input2==3)
{
range(numbers,amount);
}
else if(input2==4)
{
printf("Would You Like to (5)Restart or (6)Quit?");
scanf("%d",&input2);
}
}
while(input2!=4);
}
getch();
return 0;
}
しかし、ここに配置したり、do ループを追加して入れ子にしたりすると、「getch の前にしばらく期待してください」というエラーが発生します。
{
int amount=0;
int input2;
do
{
float numbers[MAX_DATA];
printf("Please Eneter the Amount of Numbers You Would Like to Use\n");
scanf("%d",&amount);
if (amount>MAX_DATA)
{
printf("Your entry was too big");
}
else
{
input(numbers,amount);
printf("\nStatistical Calculator Menu\n");
printf("\n(1) Mean\n(2) Standard Deviation\n(3) Range\n(4) Restart/Exit\n");
scanf("%d",&input2);
if (input2==1)
{
mean(numbers,amount);
}
else if (input2==2)
{
standard(numbers,amount);
}
else if (input2==3)
{
range(numbers,amount);
}
else if(input2==4)
{
printf("Would You Like to (5)Restart or (6)Quit?");
scanf("%d",&input2);
}
}
while(input2!=4);
}
getch();
return 0;
}
なぜこのエラーが発生するのですか?