lj74817 2022-11-09 12:07 采纳率: 40%
浏览 34
已结题

求解c语言基础问题。

#include<stdio.h>
int main()
{
int x=10,y=20,t=0;
if(x==y) t=x;x=y;y=t;
printf("%d %d\n",x,y);
return 0';
}
这个为什么答案是200,为什么答案不是10,20?


#include<stdio.h>
int main()
{
int x=0,y=2,z=3;
switch(x)
{
case 0:
switch(y==2)
{
case 1:
printf("");
break;
case 2:
printf("%");
break;
}
case 1:
switch(z)
{
case 1:
printf("$");
case 2:
printf("
");
break;
default:
printf("#");
}
}
return 0;
}
这个为什么答案是*#,不是到*就break跳出了吗?

  • 写回答

4条回答 默认 最新

  • WaitIKnowYou 2022-11-09 12:23
    关注

    第一个
    if结构是 if(表达式) { 语句块} 没有用{} 所以语句块只有一句t=x;
    后面两句都不在if成立后执行的范围内 因为x和不相等 所以执行后两句 x变成20 y变成0
    所以输出结果就是 20 0
    第二个
    第一个switch开关 中值是x 也就是0 跳到第二个switch
    第二个开关中值是y==2 也就是1 跳到case1 打印空(此处应该你代码传的有问题是 打印*吧)字符跳出本开关 由于第一个switch 的case0后面无break 所以下一个case也会执行
    到了下一个开关 switch 里面值是z 而z等于3 本开关中没有3 执行default语句 打印 #

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 11月17日
  • 已采纳回答 11月9日
  • 创建了问题 11月9日

悬赏问题

  • ¥15 echarts动画效果失效的问题。官网下载的例子。
  • ¥60 许可证msc licensing软件报错显示已有相同版本软件,但是下一步显示无法读取日志目录。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加