输入一个3位数,重组后输出最大数。程序错误求解

zsdaiyu 2020-12-22 01:08:47
输入一个3位数,重组后输出最大数。
写了程序如下,很奇怪的是,输入数如果有1,例如:123,213,451,561,917,输出都是正确的,但输入数没有1,输出就是错误的,是什么原因呢?

#include<iostream>
using namespace std;
int main()
{
int abc,a,b,c,ans;
cin>>abc;
a=abc/100;
b=abc%100/10;
c=abc%100%10/1;
if(a>=b>=c) ans=a*100+b*10+c;
if(a>=c>=b) ans=a*100+c*10+b;
if(b>=a>=c) ans=b*100+a*10+c;
if(b>=c>=a) ans=b*100+c*10+a;
if(c>=b>=a) ans=c*100+b*10+a;
if(c>=a>=b) ans=c*100+a*10+b;
cout<<ans;
return 0;
}
...全文
194 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zsdaiyu 2020-12-22
  • 打赏
  • 举报
回复
谢谢解答
真相重于对错 2020-12-22
  • 打赏
  • 举报
回复
比较不是这么写的,不能连立 需要类似于if(a>=b&&a>=c)
qzjhjxj 2020-12-22
  • 打赏
  • 举报
回复
if(a>=b && b>=c) ans=a*100+b*10+c;
    if(a>=c && c>=b) ans=a*100+c*10+b;
    if(b>=a && a>=c) ans=b*100+a*10+c;
    if(b>=c && c>=a) ans=b*100+c*10+a;
    if(c>=b && b>=a) ans=c*100+b*10+a;
    if(c>=a && a>=b) ans=c*100+a*10+b;

64,661

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧