注册 登录
编程论坛 C++教室

倒转问题

wsaaa 发布于 2007-05-09 21:12, 1192 次点击

如何将带有小数的数倒转如输入123.56输出321.65.

12 回复
#2
mp3aaa2007-05-09 23:04
c++我不是很董 只是略知一二 程序做出来了 我还不知道怎么控制显示小数点后面多少位呢 好像默认的是3位



#include<iostream.h>
#include<math.h>
main()
{
char str[10];
float a=0.0;
int x=0,i;
cin>>str;
for(i=0;str[i];i++)
if(str[i]!='.')
x++;
else break;
while(x--)
a=a*10+str[x]-'0';
for(i=0;str[strlen(str)-1-i]!='.';i++)
a=a+(str[strlen(str)-1-i]-'0')*(0.1/pow(10,i));
cout<<a<<endl;
}
#3
aipb20072007-05-10 09:03
难的写了,不过可以这样做:

把该数整数部分与小数部分离,(容易实现的)再分别求反(很多种方法,上面的代码中也有),最后把两部分合并(与分离一样)。

#4
wsaaa2007-05-10 18:47
回复:(mp3aaa)c++我不是很董 只是略知一二 程序做出...
你写的程序有问题啊,怎么没有倒转啊?能改一下吗,谢谢了.
#5
wsaaa2007-05-10 18:50
回复:(aipb2007)难的写了,不过可以这样做:把该数...
我也用了你说的方法啊,可是没有成功,可能上一程序本身的问题吧.
能提供个源程序吗,非常感谢!
#6
leeco2007-05-10 18:58
比较简单的题目,思考什么类型最容易实现倒转,肯定是字符串,以字符串的方式读入反转并输出不就可以了
#7
I喜欢c2007-05-10 20:02
把它转换成字符串在倒转就很简单了
就考虑小数点为间隔... 前后都倒转
#8
mp3aaa2007-05-10 21:14
以下是引用wsaaa在2007-5-10 18:47:30的发言:
你写的程序有问题啊,怎么没有倒转啊?能改一下吗,谢谢了.

不可能把 我都是运行好了在发上来的

只有本站会员才能查看附件,请 登录

#9
wsaaa2007-05-11 20:29
回复:(mp3aaa)以下是引用wsaaa在2007-5-10 18:47:3...

我也不清楚啊,经过改动后在TC中运行的时候会出现EXP:OVERFLOW ERROR,再看结果的时候就不正确了,如输入123,结果是0.672631,输入12345结果也是0.672631,123点多少结果还是一样啊.TC应该没有问题啊,因为我在TC中运行其他的程序可以啊,大哥知道是怎么回事吗,如果知道的话麻烦告诉我一下啊,很感谢啊!

#10
mp3aaa2007-05-11 21:20

我晕 我写的这个是C++的程序 用C语言的编译器当然不行。。。。你必须要用C++的编译器

#11
wsaaa2007-05-12 09:51
回复:(mp3aaa)我晕 我写的这个是C++的程序 用C语言...

需要改的代码我都改了啊,比如头文件和输入输出语句啊,其他的一些语句不是通用的吗?

#12
kisscjy2007-05-12 10:06

lz,发多一个给你,看可不可以~~~~

#include <iostream>
using namespace std;
void main()
{char a[100];
cout<<"输入数字:\t";
cin>>a;
int i=0,j=0; //用两个整型分别记录整数和小数
for(i=0;a[i]!='.';)
{i++;} //记录整数
for(j=i+1;a[j]!='\0';)
{j++;} //记录小数

int i1=i;

cout<<"倒转后:\t";
for(i=i-1;i>=0;i--)
{cout<<a[i]; //倒转整数部分
}
cout<<".";

for(j=j-1;j>=i1+1;j--)
{cout<<a[j]; //倒转小数部分
}
cout<<endl;
}

#13
wsaaa2007-05-12 18:10
回复:(kisscjy)lz,发多一个给你,看可不可以~~~~#in...

谢谢你多次回答我的问题啊,现在可以了.

1