[英]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.