C语言编写一个函数求一个3位正整数的逆序数,如123的逆序数是321。
时间: 2024-03-24 19:37:41 浏览: 104
可以按照以下步骤编写一个函数来求一个3位正整数的逆序数:
1. 将该正整数的个位数、十位数和百位数分别提取出来;
2. 计算该正整数的逆序数,即将它的个位数、十位数和百位数交换位置;
3. 返回计算出的逆序数。
下面是C语言实现这个函数的代码:
```c
#include <stdio.h>
int reverse_number(int num) {
int digit_1 = num % 10;
int digit_2 = (num / 10) % 10;
int digit_3 = num / 100;
int reversed_num = digit_1 * 100 + digit_2 * 10 + digit_3;
return reversed_num;
}
int main() {
int num = 123;
int reversed_num = reverse_number(num);
printf("The reverse of %d is %d\n", num, reversed_num);
return 0;
}
```
在这个例子中,我们将数字123作为输入参数传递给reverse_number函数,该函数返回数字321,因为数字123的逆序数是321。
相关问题
编写函数,求一个正整数的逆序数 用C语言
在C语言中,编写一个函数来计算一个正整数的逆序数(即将数字从大到小排列后的数值),你可以创建一个名为`reverseNumber`的函数,它接受一个整数作为输入,并通过位操作(bit manipulation)来达到逆序的目的。这里是一个简单的示例:
```c
#include <stdio.h>
// 定义一个辅助函数,用于交换两个无符号字符
void swap(uint8_t *a, uint8_t *b) {
uint8_t temp = *a;
*a = *b;
*b = temp;
}
// 函数来计算逆序数
uint32_t reverseNumber(uint32_t num) {
// 初始化变量用于保存结果和当前位的位置
uint32_t result = 0;
int pos = sizeof(num) * CHAR_BIT - 1;
// 使用循环逐位将高位移动到低位
while (pos >= 0) {
if ((num & (1 << pos)) != 0) { // 判断该位是否为1
swap(&result, &result >> 1); // 将最高有效位移到最低位并左移一位
result |= 1; // 设置最低位为1
}
pos--;
}
return result;
}
int main() {
uint32_t inputNum;
printf("请输入一个正整数: ");
scanf("%u", &inputNum);
uint32_t reversedNum = reverseNumber(inputNum);
printf("逆序数为: %u\n", reversedNum);
return 0;
}
```
在这个例子中,我们首先通过判断每个二进制位是否为1,然后将其移动到结果的最低位,直到遍历完整个数字。最后返回的就是逆序数。
用C语言输入一三位正整数 逆序输出
好的,以下是C语言代码实现:
```c
#include <stdio.h>
#include <string.h>
int main() {
char num[4];
printf("请输入一个三位正整数:");
scanf("%s", num);
int len = strlen(num);
for (int i = len - 1; i >= 0; i--) {
printf("%c", num[i]);
}
printf("\n");
return 0;
}
```
这里使用了字符数组来存储输入的数字,并使用`strlen`函数获取数字的长度,然后倒序遍历输出每一位数字。
阅读全文
相关推荐














