
将一个浮点数转化成字符串的程序
求助:将一个浮点数转化成字符串的程序,不用库函数,要求与sprintf(str,"%f",f);函数实现的功能一样。谢谢用C语言实现...
求助:将一个浮点数转化成字符串的程序,不用库函数,要求与sprintf(str,"%f",f);函数实现的功能一样。
谢谢
用C语言实现 展开
谢谢
用C语言实现 展开
展开全部
我是以如123.456这种3位小数的浮点数写得,相应的位数也是一样的
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int a[100];
char str[100];
int main()
{
double m;
while(scanf("%lf",&m)==1)
{
int x=m;
int tmp=x;
int num=0;
while(x)
{
a[num++]=x%10;
x/=10;
}
for(int i=num-1,j=0;i>=0;i--)
str[j++]=a[i]+'0';
str[num]='.';
int top=num;
//printf("%s\n",str);
int temp=(m-tmp)*1000;
while(temp)
{
a[num++]=temp%10;
temp/=10;
}
for(int i=num-1,j=top+1;i>=top;i--)
str[j++]=a[i]+'0';
printf("%s\n",str);
}
return 0;
}
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int a[100];
char str[100];
int main()
{
double m;
while(scanf("%lf",&m)==1)
{
int x=m;
int tmp=x;
int num=0;
while(x)
{
a[num++]=x%10;
x/=10;
}
for(int i=num-1,j=0;i>=0;i--)
str[j++]=a[i]+'0';
str[num]='.';
int top=num;
//printf("%s\n",str);
int temp=(m-tmp)*1000;
while(temp)
{
a[num++]=temp%10;
temp/=10;
}
for(int i=num-1,j=top+1;i>=top;i--)
str[j++]=a[i]+'0';
printf("%s\n",str);
}
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询