编写程序,键盘输入一个4位正整数,程序在屏幕上输出该整数的千位、百位、十位和个位。例如,输入1234,输出格式如下:“1234”的千位是“1”,百位是“2”,十位是“3”,个位是“4”。 输入格式: "%d" 输出格式: "\"%d\"的千位是\"%d\",百位是\"%d\",十位是\"%d\",个位是\"%d\""
时间: 2025-03-15 18:03:13 浏览: 34
这个问题是要我们编写一个程序,能够接收用户输入的一个四位正整数,并将其分解成千位、百位、十位和个位分别显示出来。下面是详细的解决思路以及对应的代码实现。
### 解决方案
1. **读取输入**: 使用`scanf()`函数按照格式`"%d"`获取用户输入的4位正整数。
2. **分离各位数字**: 利用除法(`/`) 和取余操作 (`%`) 来提取每一位数值:
- 千位:`num / 1000`
- 百位:`(num % 1000) / 100`
- 十位:`(num % 100) / 10`
- 个位:`num % 10`
3. **格式化输出**: 按照题目要求,通过`printf()`函数采用特定格式将结果打印到屏幕上。
#### 示例代码(C语言)
```c
#include <stdio.h>
int main() {
int num;
printf("请输入一个四位正整数:");
scanf("%d", &num);
if(num >= 1000 && num <=9999){
int qian = num / 1000;
int bai = (num % 1000) / 100;
int shi = (num % 100) / 10;
int ge = num % 10;
printf("\"%d\"的千位是\"%d\",百位是\"%d\",十位是\"%d\",个位是\"%d\"\n", num, qian, bai, shi, ge);
}
else{
printf("您输入的不是有效的四位正整数。\n");
}
return 0;
}
```
---
### 程序运行示例
假如用户输入了`5678`, 那么这个程序将会这样运作:
- 输入: `5678`
- 分解:
- 千位:`5678 / 1000 = 5`
- 百位:`(5678 % 1000) / 100 = 6`
- 十位:`(5678 % 100) / 10 = 7`
- 个位:`5678 % 10 = 8`
最终得到的结果就是:"5678"的千位是"5",百位是"6",十位是"7",个位是"8".
---
### 注意事项
- 此程序假定了用户会输入正确的四位数。为了更健壮的应用场景,应当加入更多的错误处理机制来应对不符合条件的数据输入。
- 上面的例子只考虑了正值的情况;如果是负值或者是浮点型数据,则需要额外的逻辑去处理。
阅读全文
相关推荐
