| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1229 人关注过本帖
标题:[求助]C++新手算法求助
取消只看楼主 加入收藏
我是猎手
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2006-8-17
收藏
 问题点数:0 回复次数:6 
[求助]C++新手算法求助

大家好,大一学过C,C++现在刚学到输入/输出,遇到一个题目无法解出,感谢各位赐教。
题目:编写程序提示用户输入小数,然后输出该小数四舍五入到小数点后第二位的数字。
要求:用基本的输入输出语句写出算法,不要涉及判断与循环。

搜索更多相关主题的帖子: 算法 小数 
2006-08-17 18:21
我是猎手
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2006-8-17
收藏
得分:0 

感谢 wfpb及大家的关注,经过思考,我也想出了一个算法,可以完全不用判断来实现四舍五入,完整代码如下:

#include <iostream>

using namespace std;

int main()
{

double inputDecimal,tempDecimal;
int minuend,subtranhend,result;

cout<<"Please enter a decimal. ";
cin>>inputDecimal;
cout<<endl;

tempDecimal = inputDecimal*200; //step1
minuend=static_cast<int>(tempDecimal)%10;
tempDecimal = inputDecimal*100;
subtranhend=static_cast<int>(tempDecimal)%10;

result=minuend-subtranhend; //step2
cout<<"Result is "<<result<<endl;
return 0;
}

2006-08-18 15:39
我是猎手
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2006-8-17
收藏
得分:0 

不过还有一个问题。
上面step1中原来是这样写的:
minuend=static_cast<int>(inputDecimal*200)%10;
subtranhend=static_cast<int>(inputDecimal*100)%10;
这样写的话就不用中间变量tempDecimal,但是计算出的minuend不正确,不知为何,谢谢大家指点迷经。

2006-08-18 15:46
我是猎手
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2006-8-17
收藏
得分:0 
谢谢corrupt指出错误,经过实验,我发现算法存在错误,对小数点后第二位数字是5到9的都不能正确得出结果。
不过错误也算是收获啦。我会继续尝试。
2006-08-18 16:40
我是猎手
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2006-8-17
收藏
得分:0 

仔细考虑了下,改正了原来的算法,消除小数点后第二位数是5-9时出错的错误。谢谢大家关注。
#include <iostream>

using namespace std;

int main()
{

double inputDecimal;
int minuend,subtranhend,result;

cout<<"Please enter a decimal. ";
cin>>inputDecimal;
cout<<endl;


minuend=static_cast<int>(inputDecimal*200);
subtranhend=static_cast<int>(inputDecimal*100);

result=(minuend-subtranhend)%10;
cout<<"Result is "<<result<<endl;
return 0;
}

---------VC验证。

[此贴子已经被作者于2006-8-19 16:38:21编辑过]

2006-08-19 16:18
我是猎手
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2006-8-17
收藏
得分:0 
我7楼的问题是IDE的问题,换用VC实验证实结果一致。大家不用回答了,谢谢!
2006-08-19 16:25
我是猎手
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2006-8-17
收藏
得分:0 
回15楼:
题目出自《C++编程-从问题分析到程序设计》94页第2题。你误会了我的意图。
虽然刚学C++,对于这个题是又很多方法做的,比如说用判断语句很快就可以实现。但是因为想用第三章以前刚学到的C++知识解决题目以检验对知识的掌握程度,所以不用后面的知识。
对于你所说的showpoint函数我还不了解。如果你能够提出你的完整算法我也将会很感激的,谢谢。
2006-08-19 20:56
快速回复:[求助]C++新手算法求助
数据加载中...
 
   



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

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