数字反转的c语言问题

给定一个整数,将该数各个位上的数字反转得到一个新的数字。新数也应该满足整数常见类型,即除非给定的原数为零,否则反转后的最高位数字不应该为零

#include<stdio.h>
int main()
{
    long long int a,b;
    scanf("%lld",&a);
    if(a==0)
    {
        printf("0");
        return 0;
    }
    if(a<0)
    {
        a=-a;
        printf("-");
    }
    do
    {
        b=a%10;
        a=a/10;
        if(b!=0)printf("%d",b);
    }while(b==0);
    while(a!=0)
    {
        b=a%10;
        a=a/10;
        printf("%d",b);
    }
    return 0;
}

#include "stdio.h"
void main()
{
    int n,i,k=0;
    scanf("%d",&n);
    while(n>0){
        k = k*10 + n%10;
        n = n/10;    
    }
    printf("%d",k);
}

利用char型数组。然后用atoi 转成整型。

#include <stdio.h>
int main() {
    char arrs[100];
    char targets[100];
    int count = 0;
    int res = 0;
    scanf("%s", arrs);
    for (int i = strlen(arrs) - 1; i >= 0; i--) {
        targets[count++] = arrs[i];
    }
    res = atoi(targets);
    printf("%d", res);
}

img

#include<stdio.h>

int ms(int n,int *t)
{
    while(n>9)
    {
        n=n/10;
        t[0]++;
    }
    return n;
}

int main()
{
    int n;
    scanf("%d",&n);
    int t[25];
    int j=0;
    int t2[1]= {0};
    int i;
    int tem2;
    while(n>9)
    {
        t2[0]=0;
        int tem=ms(n,t2);
        tem2=10;
        for(i = 1; i < t2[0]; i++)
        {
            tem2=tem2*10;
        }
        n=n-tem2*tem;
        t[j]=tem;
        j++;
    }
    t[j]=n;
    if(t[j]==0)
    {
        j--;
    }
    i=j;
    while(j>=0)
    {
        printf("%d",t[j]);
        j--;
    }
    return 0; 
}


代码如下:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int i=0,a,b=0;
    cin>>a;
    while(a!=0)
    {
        b*=10;
        b+=a%10;    
        a/=10;
    }
    cout<<b;
    return 0;
}