int的位数太少了,你把int换成long long,如果你的是vc 6.0,你就把int换成__int64,这样就可以了
#include
int main(void)
{
long long num,i,a,n,b;
i=0;
printf("Enter num:\n");
scanf("%lld",&num);
n=num;
while(num!=0){
num=num/10;
i=i+1;
}
for(b=i;b>=1;b--){
a=n/pow(10,(b-1));
n=(long long)n%(long long)pow(10,(b-1));
printf("%lld,",a);
}
return 0;
}
其实完全可以不用long long,直接用char
#include
#include
#include
using namespace std;
int main()
{
char str[1000];
scanf("%s",str);
for (int i=0;i
return 0;
}
如果你用int定义一个变量进行计算,那么他的值只能在-32728~32767之间,否则运算结果就不对,可以换成long试试
这么大的数已经把int爆了