c语言如何将字母转换成实数,编写一个程序利用科学计数法输入一个数(字符串)转换成对应的实数...

lz凑活看

#include

#include

#include

int main()

{

bool Mflag=false,Eflag=false;

int i,j,k,g;

int M_count=0,E_count=0;

double M_int=0,E=0,M_float=0,M=0;

char data[100];

printf("请以“#”号结尾(允许有空格),例如:3.64 e-6\n");

printf("输入数值:");

gets(data);

for(i=0,j=0;data[i]!='\0';i++)

{

if(data[i]==' ')

continue;

data[j]=data[i];

j++;

}

for(i=0;data[i]!='#';i++)

{

if(data[i]=='-'||data[i]=='+'||data[i]=='.'||data[i]=='e'||data[i]=='E'||data[i]=='#')

continue;

if(data[i]<47||data[i]>57)

{

printf("Error!");

exit(0);

}

}

for(i=0;data[i]!='E'&&data[i]!='e'&&data[i]!='#';i++)

{

if(data[i]=='-')

continue;

if(data[i]=='.')

break;

if(46

M_count++;

}                            //尾数整数位数

for(i=0;data[i]!='E'&&data[i]!='e'&&data[i]!='#';i++);

for(;data[i]!='#';i++)

{

if(data[i]=='-'||data[i]=='E'||data[i]=='e')

continue;

E_count++;

}

for(i=0,j=M_count-1;j>=0&&data[i]!='e'&&data[i]!='E'&&data[i]!='.';i++)

{

if(data[i]=='-')

{

Mflag=true;

continue;

}

else

{

M_int+=(data[i]-48)*pow(10,j);

j--;

}

}

if(data[i]=='.')

{

for(i=i+1,k=1;data[i]!='e'&&data[i]!='E';i++,k++)

M_float+=(data[i]-48)*pow(10,-1*k);

}

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

{

for(i=i+1,g=E_count-1;data[i]!='#';i++)

{

if(data[i]=='-')

{

Eflag=true;

continue;

}

E+=(data[i]-48)*pow(10,g);

g--;

}

}

M=M_int+M_float;

if(Mflag==true)

M=M*(-1);

if(Eflag==true)

E*=-1;

printf("%f",M*pow(10,E));

printf("\n");

return 0;

}

6f83fddf9cb9ff6843fffd45e1807199.gif

编程=用几种语言在某个或几个平台上通过抽象思维运用一系列算法来解决现实中问题的手段

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值