科学计数法 高手们都来看看吧!该怎么改?
对于非常大或者非常小的数据,我们通常用科学记数法来表示。例如在科技文献和电脑中经常遇到的 2.3×106 (计算机中的科学记数法表示为:2.3E6),或者 9.18×10-5 (科学记树法表示:9.18E-5)这种类型的数据。 输入:
用科学记数法表示的数据。即为符合C语言表示的科学记数法表示。
输出:
该数据的双精度表示
说明:
输入数据的精度不高于小数点后50位。
输入数据时,在实数和幂之间有空格进行分隔,空格个数不定。
结果保留到小数点后8位,如不足8位用0补足,超过8位则截断,不进行四舍五入的处理。
main()
{
float a,t;char m[20],n;int i=0,b;
scanf("%f %s%c%d",&a,m,&n,&b);
while(m[i++])
if(n==' ')
{t=a;
do{t=t*10;i++;}
while(i<b);
printf("%0.8f",t);
}
if(n=='-')
{t=a;
do{t=t/10;i++;}
while(i<b);
printf("%0.8f",t);
}
}
程序主要问题是 输入数据时,在实数和幂之间有空格进行分隔,空格个数不定。
帮忙看看,谢了!