饥饿的半导体 2022-03-30 15:38 采纳率: 85.7%
浏览 35
已结题

在未学习循环的情况下判断一或十位数并输出一或十位数的顺序和逆序

测试例输入1234567897得到正确结果,但是输入9876543217就不可以,代码哪里写错了呢?

#include <stdio.h>
int main()
{
    int x,a,b,c,d,e,f,g,h,i,j;
    printf("请输入一个正整数\n");
    scanf("%d",&x);
    if (x>0)
    {if(0<x&&x<10)
     printf("这个数是1位数\n顺序%d\n逆序%d\n",x,x);
     else if(999999999<x&&x<10000000000)
     {a=x%1000000000%100000000%10000000%1000000%100000%10000%1000%100%10;b=x%1000000000%100000000%10000000%1000000%100000%10000%1000%100/10;c=x%1000000000%100000000%10000000%1000000%100000%10000%1000/100;d=x%1000000000%100000000%10000000%1000000%100000%10000/1000;e=x%1000000000%100000000%100000000%1000000%100000/10000;f=x%1000000000%100000000%10000000%1000000/100000;g=x%1000000000%100000000%10000000/1000000;h=x%1000000000%100000000/10000000;i=x%1000000000/100000000;j=x/1000000000;
     printf("这个数是10位数\n顺序%d\n逆序%d%d%d%d%d%d%d%d%d%d\n",x,a,b,c,d,e,f,g,h,i,j);}
    }
    else
    printf("输入错误");
    return 0;
}
   

  • 写回答

1条回答 默认 最新

  • 什么时候上岸? 2022-03-31 10:16
    关注

    在C语言中int型数据的取值范围是-2147483648~+2147483647,你输入的第一个x没超出范围,第二个数就超了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 4月8日
  • 已采纳回答 3月31日
  • 创建了问题 3月30日