当前位置: 代码迷 >> C语言 >> [求助]5位整数倒序输出出错(已解决)
  详细解决方案

[求助]5位整数倒序输出出错(已解决)

热度:253   发布时间:2006-10-20 11:02:21.0
[求助]5位整数倒序输出出错(已解决)

编了一个输入任意整数,然后将该整数倒序输出的程序。
在输入整数的位数<=4位时,程序运行正常,但输入位数>=5位时候,经常输出的是一个负数。求教各位大虾,是哪儿出了问题。例如:输入12345,输出变成了:-11215。程序如下:

#include "stdio.h"
#include "math.h"

main() {
int i = 0,s = 0,l,t,p,n,k;

printf("input a integer:\n");
scanf("%d",&n);
k = n;

do {
i = i+1;
n = n/10;
} while (n != 0);

for (l=1;l <= i;l++) {
t = pow10(l-1);
p = pow10(i-l);
s = s+((k/t)%10)*p;
}

printf("s = %d\n",s);
getch();
}


用的tc2.0编的,感觉是编译器的问题,导致的错误。

[此贴子已经被作者于2006-11-13 14:38:13编辑过]

搜索更多相关的解决方案: 整数  倒序  输出  

----------------解决方案--------------------------------------------------------
感觉用数组...将各元素放到数组的各下标中...然后再用循环倒序输出....这样更简单..
----------------解决方案--------------------------------------------------------

while(num)
{
printf("%d",num%10);
num/=10;
}
就可以了.
----------------解决方案--------------------------------------------------------
以下是引用purana在2006-10-20 11:05:25的发言:
感觉用数组...将各元素放到数组的各下标中...然后再用循环倒序输出....这样更简单..

姐姐.用字符串更简单.
----------------解决方案--------------------------------------------------------

以下是引用bccnfyz在2006-10-20 11:02:21的发言:

编了一个输入任意整数,然后将该整数倒序输出的程序。
在输入整数的位数<=4位时,程序运行正常,但输入位数>=5位时候,经常输出的是一个负数。求教各位大虾,是哪儿出了问题。例如:输入12345,输出变成了:-11215。程序如下:

#include "stdio.h"
#include "math.h"

main() {
  int i = 0,s = 0,l,t,p,n,k;

  printf("input a integer:\n");
  scanf("%d",&n);
  k = n;

  do {
    i = i+1;
    n = n/10;
  } while (n != 0);

  for (l=1;l <= i;l++) {
    t = pow10(l-1);
    p = pow10(i-l);
    s = s+((k/t)%10)*p;
  }

  printf("s = %d\n",s);
  getch();
}



[此贴子已经被作者于2006-10-20 11:54:19编辑过]


----------------解决方案--------------------------------------------------------
对本论坛的东西不太会,帖子怎么编辑呢?
好像是你编译器的问题吧,我的vc6运行就没有问题。不过你程序里面有俩个错误。
----------------解决方案--------------------------------------------------------
  相关解决方案