下面的c加加代码错在哪里

img

输入三个字母,根据字母顺序进行输出,为什么我输出的字母是乱排序的,而不是按照从后往前排?

为什么你会写这种写法,写代码不是写数学公式。

if(a > b > c)

应该是

if(a > b  && a > c)

如果解决您的问题,请点赞采纳,谢谢。

【以下回答由 GPT 生成】

这段代码中有一个逻辑错误,导致输出的字母顺序不是按照从后往前排。

问题出现在条件判断语句中,比较运算符写反了。当输入的字母顺序是从大到小时,应该输出从后往前排的结果,而不是从前往后。因此,需要将比较运算符进行修正。

以下为修正后的代码:

#include <iostream>

using namespace std;

int main() {
    char a, b, c;

    cout << "请输入三个字母,根据字母顺序进行输出。为什么输出的字母是乱排序的,而不是按照从后往前排?" << endl;

    cin >> a;
    cin >> b;
    cin >> c;

    if ((int)a > (int)b && (int)b > (int)c) {
        cout << c << b << a << endl;
    }
    else if ((int)a > (int)c && (int)c > (int)b) {
        cout << b << c << a << endl;
    }
    else if ((int)b > (int)a && (int)a > (int)c) {
        cout << c << a << b << endl;
    }
    else if ((int)b > (int)c && (int)c > (int)a) {
        cout << a << c << b << endl;
    }
    else if ((int)c > (int)b && (int)b > (int)a) {
        cout << a << b << c << endl;
    }
    else {
        cout << b << a << c << endl;
    }

    return 0;
}

这样修正后,输出的字母就会按照从后往前排列。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^