gpt4 book ai didi

c - 编写的逻辑编码不正确

转载 作者:太空宇宙 更新时间:2023-11-04 04:15:47 25 4
gpt4 key购买 nike

程序需要执行直到按下“q”。但是我写的下面的代码只执行第一个案例,然后停止执行其他案例。例如:案例 1。如果我的输入是 p、q,那么只会执行 p 案例,而不是 q。case 2. 如果我的输入是 g, q,那么只执行 g case,不执行 q。

   int main()
{
int i,n,cnt;
char value[10]={0,0,0,0,0,0,0,0,0,0};
int index; float values,Max;
int *val;
bool quit=false;
float num[10]={1.500, 2.200, 7.300, 9.200, 7.400, 7.500, -8.000, 1.500, 12.000, 0.000};
for(i=0;i<20;i++)
{
scanf("%c",&value[i]);
if(value[i]=='r')
{
scanf("%d", &index);
scanf(", %3f",&values);
}
if((value[i] =='p')|(value[i] =='q')|(value[i] =='r')|(value[i] =='g')|(value[i] =='s'))
{
cnt++;
}
}


for(i=0;i<cnt;i++)
{
while(!quit)
{
switch(value[i])
{
//printf("Command (p/g/r/s/q):");
case 'p':
{
printf("Command (p/g/r/s/q):");
printValues(&num,10);
return;
}
case 'g':
{
printf("Command (p/g/r/s/q):");
Max= largestElement(&num,10);
printf("Max=%0.3f",Max);
return;
}
case 'r':
{
printf("Command (p/g/r/s/q):");
replaceElement(&num,index,values);
printValues(&num,10);
return;
}
case 's':
{
printf("Command (p/g/r/s/q):");
sortOnValue(&num,10);
printValues(&num,10);
return;
}
case'q':
{
printf("Command (p/g/r/s/q):");
quit= true;
break;
}
default:
{
printf("help");
return;
}
}
}

}
return 0;
}

最佳答案

在大多数 case block 中,您可能希望使用 break 而不是 return 来退出开关。目前您正从main() 返回并因此退出程序。 break 将控制转移到开关的末尾,然后您的程序可以继续。

然后 case 'q' block 将返回以退出程序。

关于c - 编写的逻辑编码不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52566688/

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