Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/143.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 有没有其他方法可以在不使用数组的情况下按升序或降序对数字进行排序?_C++_Eclipse - Fatal编程技术网

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

C++ 有没有其他方法可以在不使用数组的情况下按升序或降序对数字进行排序?,c++,eclipse,C++,Eclipse,有谁能帮我解决这个错误,我应该用什么样的返回值?或者有没有更好的方法不使用数组对数字进行排序? 非常感谢您可以将值存储在变量中: sortDigit(54321, ASCENDING) = 1234532767 请阅读。您没有显示导致错误的行。不管怎样,你想要std::你能解释一下为什么要避免使用数组吗?目前,您的代码避免使用数组,但需要进行更多的计算才能实现这一点。此外,如果要反转数字并将结果存储在int中,则反转100的结果将与反转10000的结果相同,但代码会产生不同的输出。这并不能解

有谁能帮我解决这个错误,我应该用什么样的返回值?或者有没有更好的方法不使用数组对数字进行排序?
非常感谢您可以将值存储在变量中:

 sortDigit(54321, ASCENDING) = 1234532767

请阅读。您没有显示导致错误的行。不管怎样,你想要
std::你能解释一下为什么要避免使用数组吗?目前,您的代码避免使用数组,但需要进行更多的计算才能实现这一点。此外,如果要反转数字并将结果存储在
int
中,则反转
100
的结果将与反转
10000
的结果相同,但代码会产生不同的输出。这并不能解决问题,但
sortDigit
应返回
void
,因为它无法告诉调用方任何有意义的信息。要调用它,不要将其(无意义的)结果插入
std::cout
。就叫它:
std::我非常感谢你的帮助
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 << "sortDigit(54321, ASCENDING) = ";
sortDigit(54321, ASCENDING);
cout << endl;