该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
想做一个把科学计数法转换成实数的程序,为什么输入1 e 1,运行结果出现乱码,一点都不幸福
#include
#include
#include
main()
{
char a[50],b[50],c;
int i,k,d,m,n=0,p,q,e=0;
scanf("%s %c %d",a,&c,&d);
k=strlen(a);
for(i=0;i
{if(a[i]=='.')
e=i+1;}
if(e==0)
{e=k;
for(i=0;i
b[n]=a[i];n=n+1;}
else
{
for(i=0;i
{
if(a[0]=='0'&&a[i]!='0'&&a[i]!='.')
{m=i;
break;}
}
if(a[0]=='0')
{
for(i=m;i
if(a[i]!='.')
{b[n]=a[i];n=n+1;}
}
else
{for(i=0;i
{
if(a[i]!='.')
{b[n]=a[i];n=n+1;}
}}}
p=strlen(b);
q=e+d-k;
if(q>0)
{
printf("%s",b);
for(i=0;i
{printf("0");}
printf(".00000000");
printf("\n");
}
if(q==0)
{
printf("%s",b);
printf(".00000000");
printf("\n");
}
if(q<0&&q>-p)
{
for(i=0;i
{printf("%c",b[i]);}
printf(".");
for(i=p+q;i
{printf("%c",b[i]);}
for(i=0;i<8+q;i++)
{printf("0");}
printf("\n");
}
if(q==-p)
{
printf("0.");
for(i=0;i
{printf("%c",b[i]);}
printf("\n");
}
if(q-p-8)
{
printf("0.");
for(i=0;i
printf("0");
for(i=0;i
printf("%c",b[i]);
for(i=0;i<8+q;i++)
printf("0");
printf("\n");
}
if(q<=-p-8)
{
printf("0.00000000");
printf("\n");
}
system("pause");
return 0;
}