这两天编译了一个程序,发现了一个奇怪的现象。
要处理的问题是:将任意数倒过来输出,编码如下:
#include<stdio.h> #include<conio.h> #include<math.h> void main() { int m,n,i,j,k,v,x,y,z; scanf("%d",&n); i=1; k=n; m=0; v=0; while (pow(10,i)<=n) { j=k%10; //第i位上的数字 k=(k-j)/10; i+=1; //第i位数 } // printf("%d\n",i); 可以输出任意数n的位数 y=n; z=0; for(v=1;v<=i;v++) { x=y%10; z+=x*(pow(10,i-v)); y=(y-x)/10; } printf("%d\n",z); }
而此程序在cfree里运行时,输入12345的时候,输出的是54320。而在visual c++ 6.0中运行时,输出结果却是正确的。百思不得其解,是两种软件的运行原理不一样吗?求解答,谢谢