gpt4 book ai didi

c - while 循环中的 switch 语句

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

我在控制结构的一章中,我花了一段时间进行案例挑战,但我似乎无法让它工作,有什么提示吗?,我知道我的代码有点脏或很多脏:D该代码是要求用户输入颜色名称,然后打印相应的颜色代码,之后询问您是否要继续,如果是,则继续,如果不是,则终止。

#include <stdio.h>


main ()
{
char color[20];
char answer;
printf("Enter the color name: ");
scanf("%s", &color);

while (1) {
switch("color")
{
case "red":
printf("#FF0000\n");
break;
case "green":
printf("#00FF00\n");
break;
default:
printf("FFFFFF\n");
}
printf("Do you want to do that again(y/n): ");
scanf("%c", &answer);
if (answer == "y")
{
printf("Enter the color code: ");
scanf("%s",&color);
}
else
{
printf("Quiting.......\n");
break;
}
}
return 0;
}

最佳答案

问题不止一个,但这里有几个:

您没有以正确的方式比较字符串。在 C 中,您不能使用 == 来比较字符串,您必须使用 strcmp (或 strncmp)。

您无法在 C 中打开字符串。因此您可能需要将 switch 替换为 if-else:

if (!strcmp(color, "red"))
/* ... */
else if (!strcmp(color, "green"))
/* ... */
else
/* "default" */

您正在混合不同的 scanf 策略:

  • scanf("%s",&color);\n 留在输入缓冲区
  • scanf("%c", &answer); 读取换行符并将其存储在 answer
<小时/>

基本上唯一的好建议是:继续学习。您还没有准备好迎接这个“挑战”

关于c - while 循环中的 switch 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8025672/

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