gpt4 book ai didi

c - 如何正确循环嵌套 switch 语句以提供所示的输出?

转载 作者:行者123 更新时间:2023-11-30 16:19:17 24 4
gpt4 key购买 nike

需要每次都会重复提示输入值(1,2,e):的代码。

  • 输入1后,应执行case 1操作并重复提示。
  • 输入2后,应执行case 2操作并重复提示。
  • 输入1,2,e以外的内容后,应打印“try Again”并重复提示。
  • 输入e后,应打印“退出程序”并结束。

错误:

如果我输入一个字符,循环就会无限...我该如何解决这个问题?

我在 while 循环中尝试了 switch 语句,如下所示。

int main() {
int value;
printf("%s", "Enter value(1,2,e):");
scanf_s("%d", &value);

while (value != 'e') {
switch (value) {
case 1:
printf("You have picked correctly!");
break;

case 2:
printf("You have picked incorrectly!");
break;

default:
printf("try again.");
}
printf("%s", "\nEnter value(1,2,e):");
scanf_s("%d", &value);
} printf("Exit program");
getchar();
getchar();
}

我希望我的输出是:

Enter value(1,2,e):1 You have picked correctly!
Enter value(1,2,e):2 You have picked incorrectly!
Enter value(1,2,e):3 Try again!
Enter value(1,2,e):e Bye!
*exits program*

最佳答案

如果你想检查字母,你必须允许用户输入字母:

#include <stdio.h>
#include <stdlib.h>

int main(void) {
char buffer[81];
int value;

while (1) {
printf("%s", "Enter value(1,2,e):");
scanf("%s", buffer);
if ('e' == buffer[0]) {
break;
}
value = atoi(buffer);
switch (value) {
case 1:
printf("You have picked correctly!\n");
break;

case 2:
printf("You have picked incorrectly!\n");
break;

default:
printf("try again.\n");
}
}
printf("Exit program\n");
return 0;
}

注意

该程序不进行错误检查。此代码不应在生产环境中使用。

关于c - 如何正确循环嵌套 switch 语句以提供所示的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55667812/

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