标题:[求助]数据溢出?为什么结果是这个
取消只看楼主
norlan
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2007-5-3
 问题点数:0 回复次数:0 
[求助]数据溢出?为什么结果是这个

程序是求 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编辑过]

搜索更多相关主题的帖子: 数据 结果 
2007-05-09 12:28



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-137881-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.018505 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved