标题:[求助]
只看楼主
达达
Rank: 1
等 级:新手上路
帖 子:87
专家分:0
注 册:2005-5-26
 问题点数:0 回复次数:1 
[求助]

将指数形式的浮点数字符串转换成双精度浮点值.要求将转换定义成函数.列如 输入"-123456.789e-2",结果为浮点数       -1234.56789.  (要求考虑数的正负和阶码的正负) #include<stdio.h>

#define SIZE 100

void change(char s[])

{

int i,sign,flag,m,k,p,j;

i=sign=flag=k=p=j=0;

m=1;

double n=0.0;    /*老是这里有问题*/

(s[i]=='-')?(i+=1,sign=-1):i;

for(;s[i]!='\0';i++) {

if(s[i]>='0'&&s[i]<='9'){

if(k==0) n=n*10+s[i]-'0';  /*还说这里的n没有定义*/

else {if (p==-1)j+=s[i]-'0';

else j-=s[i]-'0';

}

}

if(s[i]=='.')flag=1;

if(s[i]=='e'||s[i]=='E')

{flag=0;

k=1;

}

if(flag) j++;

if(k==1&&s[++i]=='-')p=-1;

}

if(sign==-1)n=-n;

if(j>0){

for(i=1,m=1;i<=j;i++)m*=10;

printf("Result=%*f\n",j,n/m);

}

else if(!j) printf("Result=%f\n",n/m);

else peintf("Result=%1f\n",n/m);

}

void main()

{

char s[SIZE];

printf("Input a float:\n");

scanf("%s",s);

change(s);

}

偶很是郁闷,高拉好半天 还是通不过!~!~ 恳请各位大哥哥 帮帮忙!~!小弟谢谢拉~!~~!

[此贴子已经被作者于2005-5-29 18:28:29编辑过]

搜索更多相关主题的帖子: include change double 字符串 
2005-05-29 18:26
ajey2004
Rank: 1
等 级:新手上路
帖 子:164
专家分:0
注 册:2004-12-30
得分:0 
(s[i]=='-')?(i+=1,sign=-1):i;
我没仔细看
可能是这句有问题
 

2005-05-29 19:33



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-19638-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.069644 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved