用c语言输入一个三位整数,将其百位和个位交换后输出
时间: 2024-09-13 17:18:17 浏览: 210
在C语言中,要实现这个功能,你可以使用数组或者临时变量来存储输入的三位数并进行交换操作。下面是一个简单的示例程序:
```c
#include <stdio.h>
int main() {
int num, temp; // 用于存储原始数字和中间值
printf("请输入一个三位整数: ");
scanf("%d", &num); // 输入整数
// 分离百位、十位和个位
int hundreds = num / 100; // 百位
int tens = (num % 100) / 10; // 十位
int ones = num % 10; // 个位
// 交换百位和个位
temp = hundreds;
hundreds = ones;
ones = temp;
// 组合新的三位数
num = hundreds * 100 + tens * 10 + ones;
printf("交换后的三位数是: %d\n", num);
return 0;
}
```
当你运行这个程序时,它会提示你输入一个三位数,然后输出交换了百位和个位的新数。
相关问题
用c语言输入一个三位整数,将其百位和个位交换后输出,个位数是零也要交换
在 C 语言中,你可以通过以下几个步骤来实现这个功能:
1. 首先,提示用户输入一个三位数。
2. 然后,将输入的数字转换成字符串以便于操作每一位数。
3. 分离出百位、十位和个位。
4. 如果个位是0,则不需要单独处理,因为其他位数已经足够组成新的三位数。
5. 将百位和个位互换位置。
6. 再次将变换后的数组转换回整数形式并输出。
下面是一个简单的示例程序实现:
```c
#include <stdio.h>
#include <string.h>
void swap(char *num, int pos1, int pos2) {
char temp = num[pos1];
num[pos1] = num[pos2];
num[pos2] = temp;
}
int main() {
printf("请输入一个三位数:");
unsigned int input;
scanf("%u", &input);
// 将输入转换为字符串
char str[5]; // 考虑到可能是负数,需要额外一位
itoa(input, str, 10);
// 检查是否为三位数,并且个位非零
if (strlen(str) != 4 || str[3] == '0') {
printf("输入错误,不是三位数或个位是0。\n");
return 0;
}
// 交换百位和个位
swap(str, 0, 2); // 数组下标从0开始计
// 输出结果
unsigned int output = atoi(str); // 把字符串转回整数
printf("交换后得到的三位数是:%u\n", output);
return 0;
}
```
c语言输入一个三位正整数,分解出个位、十位、百位,并将百位数字与个位数字交换重新组合成一个整数并输出
以下是一个简单的 C 语言程序,实现了输入三位正整数并进行分解,交换百位和个位后重新组合输出:
```c
#include <stdio.h>
int main() {
int num, digit1, digit2, digit3, temp;
printf("请输入一个三位正整数:");
scanf("%d", &num);
digit1 = num % 10;
digit2 = (num / 10) % 10;
digit3 = num / 100;
temp = digit1;
digit1 = digit3;
digit3 = temp;
printf("分解后的数字为:\n");
printf("百位数字:%d\n", digit3);
printf("十位数字:%d\n", digit2);
printf("个位数字:%d\n", digit1);
printf("交换后的数字为:%d\n", digit3 * 100 + digit2 * 10 + digit1);
return 0;
}
```
运行程序,输入一个三位正整数,程序会输出分解后的数字和交换后的数字。例如,输入 456,程序输出:
```
请输入一个三位正整数:456
分解后的数字为:
百位数字:4
十位数字:5
个位数字:6
交换后的数字为:654
```
阅读全文