编写一个程序,从键盘输入一个三位正整数,输出由这三个位上的数字组成的最大数与最小数。如输入213,则输出321,123
时间: 2024-12-23 10:26:50 浏览: 5
c代码-9.键盘输入一个三位数的正整数,其个位与百位相加若等于十位上的数字则输出"Yes",否则输出"No"。例如,输入"176",则输出"Yes"。输入"258",则输出"No"
要编写一个C++程序来完成这个任务,你可以使用标准输入流(cin)获取用户的输入,然后转换为字符串以便于操作每一位数字。接着,你可以遍历字符串中的每个字符并将其转换回数字,对这些数字进行排序,从而得到最大的数和最小的数。这里是一个简单的示例代码:
```cpp
#include <iostream>
#include <string>
#include <algorithm> // 包含sort算法
int main() {
std::cout << "请输入一个三位正整数:";
std::string input;
std::cin >> input;
// 检查输入是否为三位数
if (input.length() != 3) {
std::cerr << "错误!输入必须是三位数。\n";
return 1;
}
// 将字符串转换为整数数组,处理每一位
int digits[3];
for (size_t i = 0; i < 3; ++i) {
digits[i] = input[i] - '0'; // '0' 是字符'0'的ASCII值
}
// 对数组进行排序,找到最小和最大值
std::sort(digits, digits + 3); // 升序排列
int min_num = digits[0] * 100 + digits[1] * 10 + digits[2]; // 最小数
std::reverse(digits, digits + 3); // 反转数组得到降序
int max_num = digits[0] * 100 + digits[1] * 10 + digits[2]; // 最大数
std::cout << "由这三位数字组成的最小数是:" << min_num << "\n";
std::cout << "由这三位数字组成的最大数是:" << max_num << "\n";
return 0;
}
```
阅读全文