编了一个输入任意整数,然后将该整数倒序输出的程序。
在输入整数的位数<=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;
}
就可以了.
----------------解决方案--------------------------------------------------------
感觉用数组...将各元素放到数组的各下标中...然后再用循环倒序输出....这样更简单..
姐姐.用字符串更简单.
----------------解决方案--------------------------------------------------------
编了一个输入任意整数,然后将该整数倒序输出的程序。
在输入整数的位数<=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运行就没有问题。不过你程序里面有俩个错误。
----------------解决方案--------------------------------------------------------