c语言编程 科学计数法
输入:
用科学记数法表示的数据。即为符合C语言表示的科学记数法表示。
输出:
该数据的双精度表示
说明:
输入数据的精度不高于小数点后50位。
输入数据时,在实数和幂之间有空格进行分隔,空格个数不定。
结果保留到小数点后8位,如不足8位用0补足,超过8位则截断,不进行四舍五入的处理。
一定注意小数点后保留八位 不四舍五入。 展开
#include<conio.h>
#include<math.h>
#include<stdlib.h>
main(){
int i,j=0,k=1;
double qian,wan;
int hou;
char *q,*h,*p,chao1,chao2;
printf("please Input :");
scanf("%s",p);
for(i=0;*(p+i)!='\0';i++){
if(*(p+i)=='E'||*(p+i)=='e'){
k=2;
continue;
}
if(k==1){
*(q+i)=*(p+i);
}else{
*(h+j)=*(p+i); j++;
}
}
for(i=0,j=0;*(p+i)!='\0';i++){
if(*(p+i)=='.'){k=1;continue;}
if(k==1) j++;
if(j==7) chao1=*(p+i);
if(j==8){chao2=*(p+i); break;}
}
qian=atof(q);
hou=atoi(h);
wan=qian*pow(10,hou);
if(j==7) printf("results is %lf%c0",wan,chao1);
else if(j==8) printf("results is %lf%c%c",wan,chao1,chao2);
else printf("results is %lf00",wan);
getch();
}