#include <stdio.h>
bool ftos(float num,char *s,int n)
{
int temp;
float t=num;
int pn=0;
bool flag_s=true;
bool flag_z=false;
for(int i=n;i>0;i--)
t=t*10;
printf("%f\n",t);
temp=t;
printf("%d\n",temp);
if(temp<0)
{
temp=-temp;
t=-num;
flag_s=false;
}
if(temp==0)
{
if(n>0)
{
for( pn=0;pn<n;pn++)
{
*(s+pn)=‘0‘;
}
*(s+pn)=‘\.‘;
++pn;
}
*(s+pn)=‘0‘;
++pn;
if(!flag_s){
*(s+pn)=‘\-‘;
++pn;
}
*(s+pn)=‘\0‘;
}
else
{
while(temp>0)
{
if(pn==n && n>0)
{
*(s+pn)=‘\.‘;
++pn;
}
else{
*(s+pn)=(temp%10)+‘0‘;
temp=temp/10;
++pn;
}
}
while(pn<n)
{
*(s+pn)=‘0‘;
++pn;
}
if(pn==n)
{
*(s+pn)=‘\.‘;
++pn;
if(flag_s){
*(s+pn)=‘0‘;
++pn;
}
}
if(!flag_s){
if(t<1.0){
*(s+pn)=‘\.‘;
++pn;
*(s+pn)=‘0‘;
++pn;
}
*(s+pn)=‘\-‘;
++pn;
}
*(s+pn)=‘\0‘;
}
int i(0),j(pn-1);
while(i<j)
{
int temp=*(s+i);
*(s+i)=*(s+j);
*(s+j)=temp;
++i;
j--;
}
return true;
}
int main()
{
char s[20];
float num=123.456;
int n=3;
scanf("%f",&num);
scanf("%d",&n);
printf("float num is %f\n",num);
if(ftos(num,s,n))
{
printf("after convert is %s\n",s);
}
return 0;
}