c语言编程 科学计数法 在线等!
发布网友
发布时间:2022-04-22 19:53
我来回答
共2个回答
热心网友
时间:2023-09-08 18:38
#define
N
100
#include"stdlib.h"
#include"stdio.h"
#include"math.h"
void
main()
{
char
a[N],b[N];
int
i,t,f2,p,q=0;
float
f1=0.0;
double
result;
int
temkp=0;
gets(a);
for(i=0;i<N;i++)
if(a[i]=='e'||a[i]=='E')
t=i;
//提取基数
for(i=0;i<t;i++)
b[i]=a[i];
b[i]='\0';
f1=atof(b);
//提取阶数
e
后面的数值
for(i=t+1;a[i];i++)
b[q++]=a[i];
b[q]='\0';
f2=atoi(b);
result=f1*pow(10,f2);
printf("%.15lf\n",result);
}
热心网友
时间:2023-09-08 18:38
#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();
}