用C语言,交换一个十进制整数(11-99)的个位和十位的数值,输出结果。例如:输入整数12,输出整数21。
时间: 2024-10-17 10:05:12 浏览: 28
进制转换:输入一个十进制数n,把它转化为r进制数输出
在C语言中,我们可以使用位操作来实现这个功能,因为整数的每个数字都在二进制表示中有对应的位置。下面是实现该功能的一个简单示例:
```c
#include <stdio.h>
void swap(int num) {
int temp = (num & 0x0F); // 取个位(最后4位)
num = (num >> 4) | (temp << 4); // 将个位移至十位位置,原十位移到更高四位
printf("After swapping: %d\n", num);
}
int main() {
int input;
printf("Enter a two-digit number between 11 and 99: ");
scanf("%d", &input);
// 检查输入是否在范围内
if(input >= 11 && input <= 99) {
swap(input);
} else {
printf("Invalid input! Number should be between 11 and 99.\n");
}
return 0;
}
```
在这个程序中,我们首先将个位数字存储在一个临时变量`temp`中,然后通过右移操作符`>>`移除个位,再用左移操作符`<<`将`temp`插入到原来个位的位置。最后输出修改后的数字。
阅读全文