当我尝试移动我的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;
}
为什么我会收到此错误?
答案 0 :(得分:3)
请学习如何使用缩进(C代码美化)。
您的缩进和逻辑流程完全不同。
首先,为什么第一个缩进和相应的else应该在缩进的同一级别。
错误的原因是do循环是if语句的“else”部分的一部分。但是你缩进它就像你想要它一直执行一样。