快捷导航

求大神查错赐教!

//取出一个无符号的十进制整数中所有奇数数字,按原来的顺序组成一个新的数#includeintmain(){                unsignedintm=0,n,k;        scanf("%d",&n);        if(n0;k=k/10)        {                if((k%10)%2==1)                        m=(k%10)+m*10;        }while(m!=0){        printf("%d",m%10);        m=m/10;}return0;}//为什么输入的数超过十位数输出的结果就不正确了,应该怎么解决??

免责声明:本内容仅代表回答者见解不代表本站观点,请谨慎对待。

版权声明:作者保留权利,不代表本站立场。

回复

使用道具 举报

参与会员2

因为十多位的时候,数据溢出了......
unsigned int 数据类型最大范围是 0 ~4294 967 295 , 所以超过 十位以上就错了,
不是你程序写错了, ...
改进的话, 需要写成 改为数组, 或者 字符串
----------------------------------分---割---线---------------------------------------------------
如果 你要是想看 代码, 在下面回复, 我再给你贴.
啦啦啦~~Imcainiao
回复

使用道具 举报

首先, 我不是大神, 呜呜~~~~~
Imcainiao---> I am cai niao 我是菜鸟
----------------------------------分---割---线---------------------------------------------------
你说没学过,数组...... 就写个 用字符 的吧,
#includeintmain(){        charc;        while((c=getchar())!='\n'&&c!='-')        {                if(c>='0'&&c
回复

使用道具 举报

可能感兴趣的问答

发新帖
  • 微信访问
  • 手机APP