c#控制台给出一个不多于5位的正整数,要求: 1.求出它是几位数。 2.分别打印出每一位数字。 3.按照逆序打印出每一位数字。
时间: 2024-09-15 18:13:26 浏览: 83
在 C# 中,你可以通过以下步骤在控制台上完成这个任务:
1. **判断位数**:
首先,你可以使用`ToString()`方法将输入的正整数转换为字符串,然后获取其长度即位数。例如:
```csharp
int num = Convert.ToInt32(Console.ReadLine()); // 获取用户输入
int digitCount = num.ToString().Length;
```
2. **打印每一位数字**:
使用循环遍历每一位数字,通过`Substring`方法取出对应位置的数字并打印出来。例如:
```csharp
for (int i = 0; i < digitCount; i++)
{
Console.Write(num % 10); // 取余操作得到最后一位
num /= 10; // 清除最低位
Console.Write(" ");
}
Console.WriteLine(); // 换行
```
3. **逆序打印每一位数字**:
同样使用循环,但这次从最高位开始取,并反向打印。可以创建一个临时变量存储当前位的值,然后减去10的相应次方。例如:
```csharp
for (int i = digitCount - 1; i >= 0; i--)
{
int lastDigit = num / Math.Pow(10, i);
Console.Write(lastDigit);
}
Console.WriteLine();
```
完整的示例代码如下:
```csharp
using System;
class Program
{
static void Main()
{
Console.Write("请输入一个不超过5位的正整数:");
int num = Convert.ToInt32(Console.ReadLine());
if (num <= 0 || num.ToString().Length > 5)
{
Console.WriteLine("输入的数值超出范围!");
return;
}
int digitCount = num.ToString().Length;
Console.WriteLine($"该数字有{digitCount}位:");
PrintNumber(num);
Console.WriteLine("逆序打印每位数字:");
PrintReversedNumber(num);
Console.ReadKey();
}
static void PrintNumber(int num)
{
for (int i = 0; i < digitCount; i++)
{
Console.Write(num % 10);
num /= 10;
Console.Write(" ");
}
}
static void PrintReversedNumber(int num)
{
for (int i = digitCount - 1; i >= 0; i--)
{
Console.Write(num / Math.Pow(10, i));
}
}
}
```
阅读全文