[求助]数据溢出?为什么结果是这个
程序是求 n1+n2+n3+……+n9+n10 的值
为什么在输入9以上的数的时候,结果就是负数了呢,是数据溢出吗?
改成正确的又该怎样改呢?
#include<iostream.h>
long fun1(int n);
int fun2(int n,int i);
int main()
{
char ch1;
do
{
int n;
cout<<"请输入一个正整数";
cin>>n;
cout<<"表达式的值是"<<fun1(n)<<endl;
cout<<"是否继续:"<<endl;
cin>>ch1;
}while((ch1=='Y'||ch1=='y'));
return 0;
}
long fun1(int n)
{
long sum(0);
for(int i=1;i<=10;++i)
sum+=fun2(n,i);
return sum;
}
int fun2(int n,int i)
{
int m=n;
while(--i>0)
m=m*n;
return m;
}
[此贴子已经被作者于2007-5-9 12:33:35编辑过]