求教一段简单代码在不同编译器下结果不同的问题
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int x,num;
int sum=0;
double count=0;
cout<<"请输入一个整数:"<<flush;
cin>>x;
if(x==0)
cout<<"该数字是零!请重新输入!"<<endl;
else
{
int y=x;
while(y!=0)
{
count++;
y=y/10;
}
while(x!=0)
{
num=x/static_cast<int>(pow(10,(count-1)));
x=x%static_cast<int>(pow(10,(count-1)));
sum=sum+num;
count--;
}
cout<<"各位数之和为:"<<sum<<endl;
if(sum%9!=0)
cout<<"该数不能被9整除!"<<endl;
else
cout<<"该数能被9整除!"<<endl;
}
system("pause");
return 0;
}
以上代码在DEV-C++下通过编译,当输入的x为567时,返回sum=14(错误);而在vs2005下,sum=18(正确)。请问谁知道这是什么原因?