繁体   English   中英

有没有其他方法可以在不使用数组的情况下按升序或降序对数字进行排序?

[英]Is there any other way to sort numbers in ascending or descending order without using arrays?

int sortDigit(int number, bool order){

    if (order == ASCENDING && number>0) {
            for (int j = number; j>0; j/=10) {
                if (j%10==i) {
                    cout << i;
                }
            }
    }

    if (order == DESCENDING && number>0) {
            for (int j = number; j>0; j/=10) {
                if (j%10==i) {
                    cout << i;
                }
            }
    }

}

我正在尝试按排列或降序排列数字。

此代码返回排序后的数字,但由于没有返回值,答案后跟 32767:- 例如:-

cout << "sortDigit(54321, ASCENDING) = " << sortDigit(54321, ASCENDING) << endl;

输出:

 sortDigit(54321, ASCENDING) = 1234532767

任何人都可以帮助我作为我应该使用什么返回值来解决这个错误? 或者有没有更好的方法可以在不使用数组的情况下对数字进行排序? 非常感谢😊

您可以将值存储在变量中:

int sortDigit(int number, bool order){
    int ret = 0;
    if (order == ASCENDING && number>0) {
        for (int i = 1; i<=9; i++) {
            for (int j = number; j>0; j/=10) {
                if (j%10==i) {
                    ret = 10 * ret + i;
                }
            }
        }
    }

    if (order == DESCENDING && number>0) {
        for (int i = 9; i>=0; i--) {
            for (int j = number; j>0; j/=10) {
                if (j%10==i) {
                    ret = 10 * ret + i;
                }
            }
        }
    }
    return ret;
}

或者您可以在没有cout情况下调用该函数:

cout << "sortDigit(54321, ASCENDING) = ";
sortDigit(54321, ASCENDING);
cout << endl;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM