用C++编写程序:给一个不多于5位的正整数,要求:(1)求它是几位数;(2)逆序打印出各位数字
时间: 2024-10-25 20:06:08 浏览: 77
在C++中,你可以使用内置的数据类型和控制结构来实现这个功能。这里有一个简单的示例程序:
```cpp
#include <iostream>
using namespace std;
int main() {
int num;
cout << "请输入一个不超过5位的正整数: ";
cin >> num;
// 检查输入是否超过5位
if (num <= 0 || num >= pow(10, 5)) {
cout << "错误:输入的数字超过了5位!" << endl;
return 0;
}
// 计算并输出位数
int digit_count = 0;
while (num > 0) {
digit_count++;
num /= 10;
}
cout << "该数字有 " << digit_count << " 位。\n";
// 逆序打印每位数字
for (int i = digit_count - 1; i >= 0; i--) {
cout << num % 10;
num /= 10;
}
return 0;
}
```
在这个程序中,我们首先读取用户输入的整数,然后检查它是否在允许范围内。接着,通过循环除以10并获取余数的方式计算位数。最后,再次使用循环逆序打印每一位数字。
相关问题
用c++编写程序给出一个不多于5位的正整数,要求:①求出它是几位数;②分别打印出每一位数字;③按逆序打印出各位数字,例如原数为321,应输出123。
好的,这是一个很基础的编程问题,我可以帮你解决。
以下是C++代码实现:
```c++
#include <iostream>
using namespace std;
int main()
{
int num, n, i, arr[5];
cout << "请输入一个不多于5位的正整数:";
cin >> num;
// 判断是几位数
if (num < 10)
{
n = 1;
}
else if (num < 100)
{
n = 2;
}
else if (num < 1000)
{
n = 3;
}
else if (num < 10000)
{
n = 4;
}
else
{
n = 5;
}
// 分别打印出每一位数字
for (i = 0; i < n; i++)
{
arr[i] = num % 10;
num = num / 10;
}
cout << "它是" << n << "位数,每一位数字分别是:";
for (i = n - 1; i >= 0; i--)
{
cout << arr[i] << " ";
}
// 按逆序打印出各位数字
cout << endl << "按逆序打印出各位数字:";
for (i = 0; i < n; i++)
{
cout << arr[i];
}
cout << endl;
return 0;
}
```
运行程序,输入一个不多于5位的正整数,即可得到结果。
用简单的C++语言编写下列程序: 输入一个不多于5位的正整数; 输出这个数是几位数; 分别输出每一位数字; 按逆序输出各位数字。
在C++中,我们可以使用`cin`输入数据,`setw`设置输出宽度,并使用`%d`格式化输出。以下是满足您需求的简单程序:
```cpp
#include <iostream>
using namespace std;
int main() {
int num;
cout << "请输入一个不多于5位的正整数: ";
// 输入数字
cin >> num;
// 检查数字长度并处理溢出情况
if (num <= 0 || num >= pow(10, 5)) {
cerr << "输入错误,数字应为1到99999之间。\n";
return 1;
}
// 输出位数
int digit_count = floor(log10(num) + 1);
cout << "这个数是" << digit_count << "位数。\n";
// 输出每一位数字
for (int i = digit_count - 1; i >= 0; i--) {
cout << "第" << i+1 << "位数字是: " << num % 10 << "\n";
num /= 10;
}
// 按逆序输出各位数字
cout << "逆序输出:\n";
while (num > 0) {
cout << num % 10 << " ";
num /= 10;
}
cout << endl;
return 0;
}
```
阅读全文
相关推荐
















