C 如何正确修改以下内容;开关";语句以获取预期的输出值
/我看到,C 如何正确修改以下内容;开关";语句以获取预期的输出值,c,C,/我看到,k的结果通过参数表是4,但程序完成后的最终结果是123。为什么呢/ /谢谢你的回答。 我已经清楚地说明了我以前的困惑。 事实上,这是一个在考试中询问输出的问题。我在考试中错了,因为我认为输出是1,但正确答案是123。 也许是因为这个原因,我们的教学不清晰/ #include <stdio.h> int main() { int k; scanf("%d", &k); switch (k) { case 1: printf(
k
的结果通过参数表是4,但程序完成后的最终结果是123。为什么呢/
/谢谢你的回答。
我已经清楚地说明了我以前的困惑。
事实上,这是一个在考试中询问输出的问题。我在考试中错了,因为我认为输出是1,但正确答案是123。
也许是因为这个原因,我们的教学不清晰/
#include <stdio.h>
int main()
{
int k;
scanf("%d", &k);
switch (k)
{
case 1: printf("%d", k++);
case 2: printf("%d", k++);
case 3: printf("%d", k++);
break;
default: printf("Full!");
}
return 0;
}
#包括
int main()
{
int k;
scanf(“%d”和“&k”);
开关(k)
{
案例1:printf(“%d”,k++);
案例2:printf(“%d”,k++);
案例3:printf(“%d”,k++);
打破
默认值:printf(“Full!”);
}
返回0;
}
代码中没有最终结果:k
在开关之后不使用,因此它在调试器中的值没有意义
您可以修改代码以打印k
的最终值,并将看到1
、2
和3
转换为4
,所有其他值保持不变
#include <stdio.h>
int main() {
int k;
scanf("%d", &k);
switch (k) {
case 1: printf("%d\n", k++);
case 2: printf("%d\n", k++);
case 3: printf("%d\n", k++);
break;
default: printf("Full!\n");
break;
}
printf("%d\n", k);
return 0;
}
#包括
int main(){
int k;
scanf(“%d”和“&k”);
开关(k){
案例1:printf(“%d\n”,k++);
案例2:printf(“%d\n”,k++);
案例3:printf(“%d\n”,k++);
打破
默认值:printf(“完整!\n”);
打破
}
printf(“%d\n”,k);
返回0;
}
您的代码中有两个错误:
- 为什么
k++
不是k
- 对于每个
案例
由于这些错误,如果输入1
,将得到123
我猜您只想打印输入,因此更正的代码可能是:
#include <stdio.h>
int main()
{
int k;
scanf("%d", &k);
switch (k)
{
case 1: printf("%d", k);
break;
case 2: printf("%d", k);
break;
case 3: printf("%d", k);
break;
default: printf("Full!");
break;
}
return 0;
}
#包括
int main()
{
int k;
scanf(“%d”和“&k”);
开关(k)
{
案例1:printf(“%d”,k);
打破
案例2:printf(“%d”,k);
打破
案例3:printf(“%d”,k);
打破
默认值:printf(“Full!”);
打破
}
返回0;
}
您没有说明预期输出是什么,也没有说明给定输出的输入。我鼓励您检查scanf(如果(scanf(..)==1){swich…
)的结果,以确保用户输入有效的输入谢谢您的反馈:)我不想故意中断。