不是正整数,有可能有小数
且小数部分不超过五位数
望采纳!!
#include<bits/stdc++.h>
using namespace std;
class fudian
{
public:
fudian(const char *ss)
{
len=strlen(ss);
s=(char*)malloc(len+1);
strcpy(s,ss);
}
void init(const char *ss)
{
len=strlen(ss);
s=(char*)malloc(len+1);
strcpy(s,ss);
}
~fudian()
{
if(s!=NULL)
free(s);
s=NULL;
len=0;
}
int getlen()
{
//cout<<len<<endl;
return len;
}
void print()
{
int flag = 1,i,d;
int pointer=0;
//char *c;
//c=(char*)malloc(len);
for(i = 0; s[i]; ++i)
{
if(s[i] == '.')
{
flag = 0;
d = i;
break;
}
}
if(flag) { // 没有小数点,当然可能性不大
printf("整数部分:");
for(i = 0; s[i]; ++i)
{
printf("%c ",s[i]);
pointer=i;
// c[i]=s[i];
}
printf("\n");
}
else {
printf("整数部分:");
for(i = 0; s[i] != '.'; ++i)
{
printf("%c ",s[i]);
//c[i]=s[i];
}
printf("\n");
printf("小数部分:");
for(++i; s[i]; ++i)
{
printf("%c ",s[i]);
//c[i]=s[i];
}
printf("\n");
}
}
void diverse()
{
int i;
printf("逆序结果为:");
for(i=len-1;i>=0;i--)//逆序输出
{
printf("%c",s[i]);
/* if(i!=0)
printf(" ");//不取消掉最后一个空格可能会造成格式错误
*/
}
printf("\n");
}
private:
int len;
char *s;
};
/*int main01()
{
fudian obj1("32.01");
cout<<obj1.getlen()<<endl;
obj1.print ();
obj1.diverse ();
return 0;
}*/
int main()
{
char m[20];
cout<<"请输入浮点数:"<<endl;
cin>>m;
fudian obj1(m);
//obj1.init (m);
//m=strlen(pp);
//char *p = new char[m];
//fudian obj1("32.01");
//cout<<obj1.getlen()<<endl;
obj1.print ();
obj1.diverse ();
return 0;
}
#include <stdio.h>
#include <string.h>
int main()
{
float a;
char buf[128];
int i,j;
scanf("%f",&a);
sprintf(buf, "%.5lf", a); //小数转换为字符串
j=strlen(buf);
for(i=j-1;i>=0;i--)
{
printf("%c",buf[i]);
}
return 0;
}