输入三个数字a,b,c,按照升序排列,这样的if语句是不是有语法问题? 为啥程序运行只有输入 没有输出
输入三个数字按照大小排序,为啥这样码没输出?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
关注 【以下回答由 GPT 生成】
问题分析: 该代码中存在语法错误,但是这个错误不会导致没有输出结果。代码逻辑上是正确的,所以应该可以正常输出结果。那么我们需要检查一下可能的问题。
问题解决步骤: 1. 检查代码中是否存在语法错误: - 检查是否遗漏了引用头文件或者函数声明。从代码中看,已经包含了stdio.h头文件,而且main函数的声明也是正确的,所以这部分没有问题。 - 检查是否使用了未定义的变量,从代码中看,a、b、c和temp都有定义,没有使用未定义的变量,所以这部分没有问题。
- 检查输入和输出是否正确:
- 代码中使用了scanf函数来获取用户输入的三个数字,并使用printf函数来输出结果。从代码中看,输入部分没有问题,而且格式化字符串也是正确的,所以这部分没有问题。
-
检查一下是否需要在输出结果后加上换行符"\n"。从代码中看,没有添加换行符导致输出结果紧接着输入的末尾显示。解决办法是在格式化字符串的末尾加上"\n",如下所示:
printf("按照升序排列的结果是:%d %d %d\n", a, b, c);
-
编译和运行代码:
- 确保编译器没有报错信息,如果有报错提示,请根据具体错误信息进行修正。
- 运行程序并输入三个数字,然后查看是否能够正常输出结果。
问题解决代码如下(修改了printf函数的格式化字符串):
#include <stdio.h> int main() { int a, b, c; printf("请输入三个数字: "); scanf("%d %d %d", &a, &b, &c); // 排序代码 if (a > b) { int temp = a; a = b; b = temp; } if (a > c) { int temp = a; a = c; c = temp; } if (b > c) { int temp = b; b = c; c = temp; } printf("按照升序排列的结果是:%d %d %d\n", a, b, c); // 添加了换行符\n return 0; }
运行结果示例(输入3、2、1):
请输入三个数字: 3 2 1 按照升序排列的结果是:1 2 3
注意: 如果仍然没有输出结果,可能是编译器或者IDE的问题。可以尝试更换编译器或者重新安装IDE来解决问题。
【相关推荐】
- 你可以看下这个问题的回答https://ask.csdn.net/questions/7608181
- 这篇博客你也可以参考下:【C语言】输入三个数a,b,c,要求由从小到大的顺序输出。
- 除此之外, 这篇博客: 【第13题】给定三个数 a,b,c,从小到大输出这三个数 | 最原始的排序算法思想中的 零、写在前面 部分也许能够解决你的问题。
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
- ¥15 安装quartus II18.1时弹出此error,怎么解决?
- ¥15 keil官网下载psn序列号在哪
- ¥15 想用adb命令做一个通话软件,播放录音
- ¥30 Pytorch深度学习服务器跑不通问题解决?
- ¥15 部分客户订单定位有误的问题
- ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
- ¥15 Bug traq 数据包 大概什么价
- ¥15 在anaconda上pytorch和paddle paddle下载报错
- ¥25 自动填写QQ腾讯文档收集表