gpt4 book ai didi

c - 在 C 中使用 Do While 循环时出现奇怪的问题

转载 作者:行者123 更新时间:2023-11-30 18:43:05 26 4
gpt4 key购买 nike

当我尝试移动 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 循环来嵌套它,我会收到“expect while before 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;
}

为什么我会收到此错误?

最佳答案

请学习如何使用缩进(C 代码美化器)。

您的缩进和逻辑流程完全不同。

首先,为什么第一个if是缩进的,而对应的else应该是同一级缩进。

错误的原因是 do 循环是 if 语句的“else”部分的一部分。但是您缩进它就好像您希望它始终执行一样。

关于c - 在 C 中使用 Do While 循环时出现奇怪的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12777200/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com