#include <stdio.h>
/*
编写一个函数,将一个数字字符串转换成这个字符串对应的数字(包括正浮点数、负浮点数)
例如:"12.34" 返回12.34
"-123.34" 返回-123.34
函数原型:double my_atof(char *str)
{}
*/
double my_atof(char *str)
{
double m=0,n=0,x=1;
int flag=1;
int flag2=0;
if(*str=='-') //判断正负
{
flag2=1;
str++;
}
while(*str!='\0')
{
if(*str<'0'|| *str >'9' )
{
if(*str =='.') //判断小数点前后
{
flag=0;
str++;
continue;
}
return 0;
}
if(flag==1) //小数点前整数部分
{ m*=10;
m+=*str-'0';
}
else //小数部分
{
x*=0.1;
n+=x*(*str-'0');
}
str++;
}
if(flag2==0)
return m+n;
else
return (m+n)*-1;
}
int main()
{
char s[100]={0};
scanf("%s",s);
printf("%f\n",my_atof(s));
return 0;
}