预定程序员 2023-08-04 16:09 采纳率: 67.4%
浏览 5
已结题

openjudge 1.5数字反转题提交显示错误,C语言问题

问题:在openjudge上运行错误,但是看不出代码哪里有问题?在Devc++上也能运行

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

输入
输入共 1 行,一个整数N。

-1,000,000,000 ≤ N≤ 1,000,000,000。
输出
输出共 1 行,一个整数,表示反转后的新数。
样例输入
样例 #1:
123

样例 #2:
-380
样例输出
样例 #1:
321

样例 #2:
-83

#include<stdio.h>
#include<math.h>
int main()
{
    long n;
    scanf("%ld",&n);
    if(n==0)
    {printf("%d",n);}
    else
    {
        if(n%10==0)
        {n/=10;}
        while(n)
        {
            printf("%d",n%10);
            n/=10;
            if(n<0)
            {
                n=-n;
            }
        }
    }
    return 0;
}
  • 写回答

2条回答 默认 最新

  • qzjhjxj 2023-08-04 16:25
    关注

    用int 型就满足题目要求,修改如下,供参考:

    #include <stdio.h>
    #include <math.h>
    int main()
    {
        int  n, k = 0, flg = 1;   // 修改
        scanf("%ld", &n);
        if (n == 0)
        {
            printf("%d", n);
        }
        else
        {
            if (n < 0){
                n = -n;
                flg = -1; // 修改
            }
            //if (n % 10 == 0)
            //{
            //    n /= 10;
            //}
            while (n)
            {
                k = k * 10 + n % 10;
                //printf("%d", n % 10);
                n /= 10;
            }
            printf("%d", k * flg);
        }
        return 0;
    }
    
    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月19日
  • 创建了问题 8月4日

悬赏问题

  • ¥15 VS2022 C++的相关代码问题咨询
  • ¥15 如果要做一个老年人平板有哪些需求
  • ¥15 k8s生产配置推荐配置及部署方案
  • ¥15 matlab提取运动物体的坐标
  • ¥15 人大金仓下载,有人知道怎么解决吗
  • ¥15 一个小问题,本人刚入门,哪位可以help
  • ¥30 python安卓开发
  • ¥15 使用R语言GD包一直不出结果
  • ¥15 计算机微处理器与接口技术相关问题,求解答图片的这个问题,有多少个端口,端口地址和解答问题的方法和思路,不要AI作答
  • ¥15 如何根据一个截图编写对应的HTML代码