| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 471 人关注过本帖
标题:[求助]数据溢出?为什么结果是这个
只看楼主 加入收藏
norlan
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2007-5-3
收藏
 问题点数:0 回复次数:4 
[求助]数据溢出?为什么结果是这个

程序是求 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
边城路人
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:9
帖 子:591
专家分:0
注 册:2007-3-8
收藏
得分:0 

#include<iostream.h>
long double fun1(int n);
long double fun2(int n,int i);
int main()
{
char ch1;
do
{
int n;
cout<<"请输入一个正整数";
cin>>n;
cout<<"表达式的值是"<<fun1(n)<<endl;
cout<<"是否继续(按Y或y继续):"<<endl;
cin>>ch1;
}while((ch1=='Y'||ch1=='y'));
return 0;
}
long double fun1(int n)
{
long double sum(0);
for(int i=1;i<=10;++i)
sum+=fun2(n,i);
return sum;
}
long double fun2(int n,int i)
{
long double m=(long double)n;
while(--i>0)
m=m*n;
return m;
}


当你开始怀疑自己时,说明你已经失去了判断力
2007-05-09 13:08
边城路人
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:9
帖 子:591
专家分:0
注 册:2007-3-8
收藏
得分:0 
修改一下类型就可以了

当你开始怀疑自己时,说明你已经失去了判断力
2007-05-09 13:09
pysjg014
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-5-9
收藏
得分:0 

改成double的不就可以了

2007-05-09 20:52
快速回复:[求助]数据溢出?为什么结果是这个
数据加载中...
 
   



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

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