| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1133 人关注过本帖
标题:将字符转换为数值(有指数)我的程序错在哪里??
取消只看楼主 加入收藏
winnie96
Rank: 2
等 级:论坛游民
帖 子:51
专家分:86
注 册:2015-12-14
结帖率:53.85%
收藏
已结贴  问题点数:20 回复次数:0 
将字符转换为数值(有指数)我的程序错在哪里??
#include<stdio.h>
#include<stdlib.h>

double main(void)
{
    int i,j=0;
    double t;
    char a[20];
    double Atof(char *s);
    printf("输入一串字符");
    scanf("%s",a);
    for(i=0;i<100;i++)
    {    while(a[i]!='\0')
        {
            if(a[i]>='0'&&a[i]<='9'||a[i]=='.'||a[i]=='e'||a[i]=='E'||a[i]=='-'||a[i]=='+')
            {
                a[j]=a[i];
                j++;
            }
            
        }
    a[j]='\0';
        break;
    }
    t=Atof(a);
    printf("%lf",t);
    system("pause");
    return 0;
}


double Atof(char *s)
{
    int p=0,f=0,a=0,w=1,e=0,i;
    double b=0,sum,c=0.0;
    while(*s!='\0'&&*s!='e'&&*s!='E')
    {
    if(*s=='-')
    {
        p=1;
    }
    else if(*s=='+')
        ;
    else if(*s>='0'&&*s<='9')
    {
        a*=10;
        a=a+(*s-'0');
    }
    else
        ;
    s++;
    }
    while(*s!='\0'&&*s!='e'&&*s!='E')
    {
        if(*s>='0'&&*s<='9')
        {
            c*=0.1;
            
            b+=(*s-'0')*c;
        }
        else
        ;
        s++;
    }

    while(*s!='\0'&&*s!='.')
    {
   
            if(*s>='0'&&*s<='9')
            {
        
                e*=10;
                e=e+(*s-'0');
            }
    }
    for(i=0;i<e;i++)
        w=w*10;
   
    sum=p*(a+b)*w;
    return sum;
}
2015-12-22 17:31
快速回复:将字符转换为数值(有指数)我的程序错在哪里??
数据加载中...
 
   



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

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