C++冒泡排序 任意给定一个整数,把它重新组成一个最大值和最小值,求出两数的差。例如3721可以重新组成7231和1237两数之差为6084 输入:一个数 输出最大值和最小值的差
时间: 2024-04-14 11:30:30 浏览: 81
您好!要实现这个功能,可以使用冒泡排序算法对给定的整数进行排序,然后计算最大值和最小值的差值。以下是使用C++语言实现冒泡排序的示例代码:
```cpp
#include <iostream>
using namespace std;
void bubbleSort(int arr[], int n) {
for (int i = 0; i < n-1; i++) {
for (int j = 0; j < n-i-1; j++) {
if (arr[j] > arr[j+1]) {
// 交换arr[j]和arr[j+1]
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
int main() {
int num;
cout << "请输入一个整数: ";
cin >> num;
// 将整数转换为数组
int arr[10]; // 假设最多只有10个数字
int length = 0;
while (num > 0) {
arr[length] = num % 10;
num /= 10;
length++;
}
// 使用冒泡排序对数组进行排序
bubbleSort(arr, length);
// 计算最大值和最小值的差值
int maxNum = 0;
int minNum = 0;
for (int i = 0; i < length; i++) {
maxNum = maxNum * 10 + arr[length-i-1];
minNum = minNum * 10 + arr[i];
}
int diff = maxNum - minNum;
cout << "最大值和最小值的差为: " << diff << endl;
return 0;
}
```
您可以将上述代码保存为一个.cpp文件,然后使用C++编译器编译运行。输入一个整数后,程序将输出最大值和最小值的差值。希望对您有帮助!如有任何疑问,请随时提问。
阅读全文