c++程序修正
时间:2011-11-30
来源:互联网
/*求三个实数逆序输出*/
#include<iostream>
#include<iomanip>
#include<cmath>
using namespace std;
int main()
{
double temp,number,i,j,shu,count,integer,k;
for(k=1;k<4;k++){
i=j=1,count=0;
temp=1.5;
cout<<"Please enter a number:";
cin>>integer;
number=integer;
if(number<0)
number=-number;
while(temp>=1)
{
temp=number/pow(10,i);
i++;
}
--i;
j=0;
if(number!=(int)number)
{
cout<<integer<<"为小数"<<endl;
while(temp!=(int)temp)
{
temp=number*pow(10,j);
j++;
}
--j;
cout<<integer<<"的小数位数是"<<j<<endl;
}
cout<<integer<<"的位数为"<<i+j<<endl;
number*=pow(10,j);
cout<<"逆序为:";
if(integer<0)
cout<<"-";
while(number>=1){
shu=(int)number%10;
cout<<shu;
number/=10;
count++;
if(count==j){
cout<<".";
}
}
if(integer<1&&integer>-1)
cout<<"0";
cout<<endl;
}
return 0;
}
输入0.2563,-0.2563,0.2568,-0.2568,0.0009就会出错,请问哪的错,怎样改正?
作者: t534458362 发布时间: 2011-11-30
当输入0.2563时实际的值为0.25629999999999997...所以在while(temp!=(int)temp)
{
temp=number*pow(10,j);
j++;
}时进入死循环换所以输不出值了
{
temp=number*pow(10,j);
j++;
}时进入死循环换所以输不出值了
作者: gongheguoyingpai11 发布时间: 2011-12-01
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28