用c++编写程序,给出一个不多于4位的正整数,要求: (1) 求出它是几位数; (2)分别输出每一位数; (3)按逆序输出各位数字,例如原数为2560,应输出为0652。 说明:请分别使用if…else语句、switch语句进行实现。
时间: 2024-10-24 10:08:21 浏览: 37
在C++中,你可以使用`if...else`语句和`switch`语句来实现这个功能。下面是两种方式的具体示例:
**使用if...else语句:**
```cpp
#include <iostream>
using namespace std;
int main() {
int num;
cout << "请输入一个不多于4位的正整数: ";
cin >> num;
// 判断位数
if (num >= 1 && num <= 9) {
cout << "这是一个一位数:" << num << endl;
} else if (num >= 10 && num <= 99) {
cout << "这是一个两位数:" << num / 10 << " 和 " << num % 10 << endl;
} else if (num >= 100 && num <= 999) {
cout << "这是一个三位数:" << num / 100 << " , " << (num / 10) % 10 << " 和 " << num % 10 << endl;
} else if (num == 1000) {
cout << "这是一个四位数:" << num / 1000 << " , " << (num / 100) % 10 << " , " << (num / 10) % 10 << " 和 " << num % 10 << endl;
} else {
cout << "输入错误,数字超过4位!" << endl;
}
// 输出逆序数字
int reversed = 0;
while (num > 0) {
reversed = reversed * 10 + num % 10;
num /= 10;
}
cout << "按逆序输出: " << reversed << endl;
return 0;
}
```
**使用switch语句:**
```cpp
#include <iostream>
using namespace std;
int main() {
int num;
cout << "请输入一个不多于4位的正整数: ";
cin >> num;
// 判断位数并转换成字符串便于处理
string strNum = to_string(num);
int length = strNum.length();
switch (length) {
case 1:
cout << "这是一个一位数:" << num << endl;
break;
case 2:
cout << "这是一个两位数:" << strNum[0] << " 和 " << strNum[1] << endl;
break;
case 3:
cout << "这是一个三位数:" << strNum[0] << " , " << strNum[1] << " 和 " << strNum[2] << endl;
break;
case 4:
cout << "这是一个四位数:" << strNum[0] << " , " << strNum[1] << " , " << strNum[2] << " 和 " << strNum[3] << endl;
break;
default:
cout << "输入错误,数字超过4位!" << endl;
}
// 输出逆序数字
int reversed = 0;
for (int i = length - 1; i >= 0; --i) {
reversed = reversed * 10 + (strNum[i] - '0');
}
cout << "按逆序输出: " << reversed << endl;
return 0;
}
```
阅读全文