C++求救 输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符。

输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符。输出一行,字符中间用一个空格分开。帮忙看一下哪里错了,或者有什么简便的方法# include <iostream>using namespace std;int main (){char a,b,c,min,mid,max;cin>>a>>b>>c;if((a>b)&&(b>c)) {min=c; mid=b; max=a; }if((b>a)&&(a>c)) {min=c; mid=a; max=b; }if((c>a)&&(a>b)) {min=b; mid=a; max=c; }if((b>c)&&(c>a)) {min=a; mid=c; max=b; } if((c>b)&&(b>a)) {min=a; mid=b; max=c; }if((a>c)&&(c>b)) {min=b; mid=c; max=a; }cout<<min<<""<<mid<<""<<max<<""<<endl; return 0;}
2026年09月21日 11:00
有1个网友回答
网友(1):

大于号改成大于等于号,否则有两个字符相等时不会执行任何一个if。

后面的cout<

你用的这个写法相当于穷举,一般会写成这样

if (a > b)
swap(a, b);
if (a > c)
swap(a, c);
if (b > c)
swap(b, c);
cout << a << b << c;

用现成的算法的话直接

char c[3];
cin >> c[0] >> c[1] >> c[2];
sort(&c[0], &c[3]);
cout << c[0] << c[1] << c[2];