C I';我试着用一个简单的开关盒,但它不工作?
我希望它为每个案例分配一个字符串值,并且能够打印,如果需要,是否需要指针?为什么C I';我试着用一个简单的开关盒,但它不工作?,c,C,我希望它为每个案例分配一个字符串值,并且能够打印,如果需要,是否需要指针?为什么 int main() { int a; char d; printf("Input a Number\n"); scanf("%d",&a); switch(a) { case 1: d='One'; case 2: d='Two'; case 3: d='Three'; }
int main()
{
int a;
char d;
printf("Input a Number\n");
scanf("%d",&a);
switch(a)
{
case 1:
d='One';
case 2:
d='Two';
case 3:
d='Three';
}
printf("You entered %s",d);
return 0;
}
我预计产出:
input a number
1
you entered one
您的代码有几个问题:
#包括
break
语句。如果没有中断
,程序的流程只会继续到下一个案例
#include <stdio.h>
int main()
{
int number;
const char *numbername; // const is not mandatory
printf("Input a Number\n");
scanf("%d", &number);
switch (number)
{
case 1:
numbername = "One";
break;
case 2:
numbername = "Two";
break;
case 3:
numbername = "Three";
break;
}
printf("You entered %s", numbername);
return 0;
}
#包括
int main()
{
整数;
常量char*numbername;//常量不是必需的
printf(“输入一个数字”);
scanf(“%d”和编号);
开关(编号)
{
案例1:
numbername=“一”;
打破
案例2:
numbername=“二”;
打破
案例3:
numbername=“三”;
打破
}
printf(“您输入了%s”,numbername);
返回0;
}
请注意,C中没有“字符串”类型。请阅读初学者C课本中有关字符串的章节
暂时忘记
const
关键字,这是一个更高级的主题。您遇到的问题不是case语句:您的问题是字符串文本被双引号(“
)包围,而不是撇号(”
),因为它们是为字符文本保留的
奇怪的是,您在下面的printf()
调用中使用了双引号
注意:程序应该对此表示不满,因此您没有得到一个可执行程序。请不要只说这不起作用,因为这里发布的每个问题都与不起作用的问题有关。缺少休息时间。但在提问时,您还需要解释发生了什么,例如,“它总是打印‘三’”“。而且,你正试图将许多字符塞进一个字符中。教程可能是一个更好的起点。请在此处查找正确的语法: