c语言编程 科学计数法

对于非常大或者非常小的数据,我们通常用科学记数法来表示。例如在科技文献和电脑中经常遇到的2.3×106(计算机中的科学记数法表示为:2.3E6),或者9.18×10-5(... 对于非常大或者非常小的数据,我们通常用科学记数法来表示。例如在科技文献和电脑中经常遇到的 2.3×106 (计算机中的科学记数法表示为:2.3E6),或者 9.18×10-5 (科学记树法表示:9.18E-5)这种类型的数据。
输入:
用科学记数法表示的数据。即为符合C语言表示的科学记数法表示。
输出:
该数据的双精度表示
说明:
输入数据的精度不高于小数点后50位。
输入数据时,在实数和幂之间有空格进行分隔,空格个数不定。
结果保留到小数点后8位,如不足8位用0补足,超过8位则截断,不进行四舍五入的处理。

一定注意小数点后保留八位 不四舍五入。
展开
 我来答
eywuaibu14
2010-05-24 · TA获得超过199个赞
知道小有建树答主
回答量:97
采纳率:0%
帮助的人:0
展开全部

#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();

}

本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
王智杰1998
2010-05-24
知道答主
回答量:92
采纳率:0%
帮助的人:26.9万
展开全部
8978898.9989
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式