葛成功之路 2019-12-04 22:52 采纳率: 87.5%
浏览 220
已采纳

请问我的输出为什么全是4个0?

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

输入描述
每 1 行一个整数 N

输出描述
每 1 行一个整数,表示反转后的新数.

样例输入
123
-380
样例输出
321
-83

#include<stdio.h>
#include<string.h>
int main()
{
long int m;
    int n,a,b=0,k,j,t;
    while(scanf("%d",&m)!=EOF)
    {
        if(m>0)
        {
        {
        if(m%10==0)
        while(m%10!=0)
        {
        m=m/10;
    }
    while(a!=0)
    {
        a=m%10;
            b=b*10+a;
            a=a/10;
        }
    printf("%d\n",b);
}
{
    if(m%10!=0)
    while(a!=0)
    {

             a=m%10;
            b=b*10+a;
            a=a/10;
        }
    printf("%d\n",b);
}
        }
        if(m<0) 
        j=0-m;
        {

        if(j%10==0)
        while(j%10!=0)
        {
            j=j/10;
    }
    while(a!=0)
    {
    a=j%10;
            b=b*10+a;
            a=a/10;
    t=0-b;
}
    printf("%d\n",t);
}
{
    if(j%10!=0)
    while(a!=0)
    {

    a=j%10;
            b=b*10+a;
            a=a/10;
            t=0-b;
        }
    printf("%d\n",t);
    }
}
    return 0;
} 
  • 写回答

1条回答 默认 最新

  • qtchen_1988 2019-12-05 10:56
    关注

    你的代码逻辑有点乱;
    我改了一下:

    #include<string.h>
    #include<stdlib.h>
    #include<stdio.h>
    
    int main()
    {
        long int m;
        int a,b,k;
        while(scanf("%d",&m)!=EOF)
        {
            k = 1;
            b = 0;
            if(m == 0)
            {
                printf("%d\n",b*k);
                continue;
            }
            else if(m<0)
            {
                k = -1;
                m = m*k;
            }
            while (m%10==0)
                m=m/10;
    
            while(!(m%10==0 && m/10 < 1)) {
                a = m%10;
                b = b*10+a;
                m=m/10;
            }
            printf("%d\n",b*k);
        }
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
  • ¥15 教务系统账号被盗号如何追溯设备
  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图2.0 版本点聚合中Marker的位置无法实时更新,如何解决呢?
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题