新学c语言函数,利用函数完成整数逆向输出

新学c语言函数,利用函数完成整数逆向输出。
球轻骂()

img

img

#include <stdio.h>
#include <math.h>
void s(int n)
{
while(n){
n=n/10;
ws++;
}
return ws;
}
void fun(int n,int m)
{
int s=0,i,j,a=1;
for(i=1;i<=m;i++){
for(j=1;j<i;j++){
a=a*10;
}
s=s+(n%10)*a;
n=n/10;
}
return s;
}

int main()
{
int n;
scanf("%d",&n);
if(n<0){
printf("-");
n=-n;
}
printf("%d",fun(n,s(n)));
return 0;
}

题主考虑的复杂了,修改如下,供参考:

#include <stdio.h>
#include <math.h>
#if 0
int s(int n)  //void s(int n)
{
    int ws = 0;  //修改
    while (n) {
        n = n / 10;
        ws++;
    }
    return ws;
}
void fun(int n, int m)
{
    int s = 0, i, j, a = 1;
    for (i = 1; i <= m; i++) {
        for (j = 1; j < i; j++) {
            a = a * 10;
        }
        s = s + (n % 10) * a;
        n = n / 10;
    }
    return s;
}
#endif
int fun(int n)
{
    int k = 0;
    while (n) {
        k = k * 10 + n % 10;
        n /= 10;
    }
    return k;
}
int main()
{
    int n;
    scanf("%d", &n);
    if (n < 0) {
        printf("-");
        n = -n;
    }
    printf("%d", fun(n));
    //printf("%d", fun(n, s(n)));
    return 0;
}

  
 #include <stdio.h>
int fun(int n); 
int main(void)
{
    int x;
    scanf("%d",&x);
    printf("%d的逆向是%d\n",x,fun(x));
    return 0;
}
int fun(int n)
{
    int m,res;
    res=0;
//以下if语句是为了改变m的值,且用n<0来区分正负数 
    if(n<0)
        m=n;
    else
        m=-n;
    while(m!=0)
    {
    //除10可以扔掉(舍弃)一位数,
        res=res*10+m%10;
    //对10取余数,可以分离得到最后一位 
        m=m/10;
    }
//下面的if语句是为了让res符号回到原先得符号 
    if(n>=0)
        return -res;
    else 
        return res;
}