c语言编程过中产生的疑问

请问如何将字符位置反转并设置循环(更巧妙的方法)
比如以下实例:
首先,提示用户输入一个整数;
然后,将用户输入整数的各位数值反转位置(符号位不变)后,存放到变量result中;
最后,将result的值输出。
例如:假如用户输入:1234,则系统输出:4321;假如用户输入-987650,则系统输出:-56789

以及如何兼顾符号。

不断求余10,余数不断乘以10

#include <stdio.h>
int main()
{
    int n,result = 0,flag=1;
    scanf("%d',&n);
    if(n<0)
    {
        flag = -1;
        n *= -1;
    }
    while(n>0)
    {
        result = result * 10 + n%10;
        n/=10;
    }
    printf("%d",result * flag);
}


#include <stdio.h>
#include <math.h>

int reverse_integer(int num) {
    int sign = 1;
    if (num < 0) {
        sign = -1;
        num = -num;
    }
    int result = 0;
    int length = log10(num) + 1;
    for (int i = 0; i < length; i++) {
        result += (num % 10) * pow(10, length - i - 1);
        num /= 10;
    }
    return sign * result;
}

int main() {
    int num;
    printf("请输入一个整数:");
    scanf("%d", &num);
    printf("结果:%d\n", reverse_integer(num));
    return 0;
}

代码加注释


#include <stdio.h>
#include <stdlib.h>

int main()
{
    int num, result = 0; // 定义两个整型变量num和result,用于存储用户输入的整数和反转后的结果
    printf("请输入一个整数:"); // 提示用户输入一个整数
    scanf("%d", &num); // 读取用户输入的整数并存储到变量num中

    while (num != 0) // 当num不等于0时,执行循环
    {
        result = result * 10 + num % 10; // 将result乘以10并加上num的最后一位数字
        num /= 10; // 将num除以10以去掉最后一位数字
    }

    printf("反转后的整数为:%d\n", result); // 输出反转后的结果
    return 0;
}