精华内容
下载资源
问答
  • C语言科学计数法中的一个小问题 在C语言中,可以用科学计数法的形式来定义数据,例如1e10表示1*10的10次方,即MeN代表M乘以10的N次方,这里是比较好理解的。但需要注意的是,在C语言中,所定义的MeN这个数据,是一个...

    C语言科学计数法中的一个小问题


    在C语言中,可以用科学计数法的形式来定义数据,例如1e10表示1*10的10次方,即MeN代表M乘以10的N次方,这里是比较好理解的。但需要注意的是,在C语言中,所定义的MeN这个数据,是一个double类型的数据,而不是思维定势地认为这是一个int型数据。

    验证
    在这里插入图片描述
    在上面的图中可以看到,当在定义数组a的长度为1e6时,提示数组的长度不能够定义为double类型,这就可以验证上面的说明。

    在这里插入图片描述
    接着再打印一下数据1e6所占的字节数,可以看到占8个字节,补充说明了在利用科学计数法e的形式定义数据时,该数据是double类型。

    展开全文
  • C语言科学计数法介绍和示例

    万次阅读 2020-04-24 21:45:46
    1、科学计数法 示例(book78.c) /* * 程序名:book78.c,此程序测试浮点数据的科学计数法。 * 作者:C语言技术网(www.freecplus.net) 日期:20190525 */ #include <stdio.h> int main() { double dd; ...

    1、科学计数法

    在实际开发中,我们很少使用科学计数法,但是它经常出现在计算机系统中,例如浮点数在内存中的存放方式就是科学计数法,所以我们还是有必要学习科学计数法。

    科学记数法是一种记数的方法。把一个数表示成a与10n相乘的形式(1≤|a|<10,n为整数),这种记数法叫做科学记数法。当我们要书写或运算某个较大或较小且位数较多时,用科学记数法免去浪费很多空间和时间。

    例如:51400000000=5.14×1011,计算机表达10的幂是一般是用E或e,也就是51400000000=5.14E11或5.14e11。

    用科学记数法表示数时,不改变数的符号,只是改变数的书写形式而已,可以方便的表示日常生活中遇到的一些极大或极小的数 。如:光的速度大约是300,000,000米/秒;全世界人口数大约是:6,100,000,000,这样的数书写和显示都很不方便,为了免去写这么多重复的0,将其表现为这样的形式:6,100,000,000=6.1×109,即6.1E9或6.1e9。

    0.00001=1×10-5,即绝对值小于1的数也可以用科学记数法表示为a乘10-n的形式。即1E-5或1e-5。

    科学计数法采用%e或%E输出,完整的输出格式是%m.ne或%m.nE,指定输出数据整数部分和小数部分共占m位,其中有n位是小数。如果数值长度小于m,则左端补空格,若数值长度大于m,则按实际位数输出。

    示例(book78.c)

    /*
     * 程序名:book78.c,此程序测试浮点数据的科学计数法。
     * 作者:C语言技术网(www.freecplus.net) 日期:20190525
    */
    #include <stdio.h>
    
    int main()
    {
      double dd;
    
      dd=123000000;
      printf("dd is  %.2e\n",dd);
    
      dd=-123000000;
      printf("dd is %.2e\n",dd);
    
      dd=0.0000000123;
      printf("dd is  %.2e\n",dd);
    
      dd=-0.0000000123;
      printf("dd is %.2e\n",dd);
    }
    

    运行效果
    在这里插入图片描述

    2、获取视频教程

    百万年薪程序员录制,《C/C++高性能服务开发基础》视频教程已在CSDN学院发布,优惠价12元,地址如下:
    https://edu.csdn.net/course/play/29402

    3、版权声明

    C语言技术网原创文章,转载请说明文章的来源、作者和原文的链接。

    来源:C语言技术网(www.freecplus.net

    作者:码农有道

    展开全文
  • 1024 科学计数法 (20 分) 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [±][1-9].[0-9]+E[±][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位,该数字及其指数部分的...

    1024 科学计数法 (20 分)
    科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [±][1-9].[0-9]+E[±][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位,该数字及其指数部分的正负号即使对正数也必定明确给出。

    现以科学计数法的格式给出实数 A,请编写程序按普通数字表示法输出 A,并保证所有有效位都被保留。

    输入格式:
    每个输入包含 1 个测试用例,即一个以科学计数法表示的实数 A。该数字的存储长度不超过 9999 字节,且其指数的绝对值不超过 9999。

    输出格式:
    对每个测试用例,在一行中按普通数字表示法输出 A,并保证所有有效位都被保留,包括末尾的 0。

    输入样例 1:
    +1.23400E-03
    输出样例 1:
    0.00123400
    输入样例 2:
    -1.2E+10
    输出样例 2:
    -12000000000

    #include<stdio.h>
    int main()
    {
        char s[10001];
        char d[10001];
        gets(s);
    
    
        int i,num=0,sum=0;
        for(i=1;s[i]!='E';i++)//先计算底的长度。
        {
            if(s[i]!='.')//排除小数点。
            {
                 d[num++]=s[i];//num正好是低的长度。
                 if(s[i]=='0')
                 sum++;
            }
    
        }
        d[num]='\0';
        i++;
        char f;
        f=s[i];//指数的正负
         int z=0;//计算指数。
        for(i++;s[i]!='\0';i++)
            z=z*10+s[i]-'0';
        if(z==0)
        {
            for(i=0;i<num;i++)
           {
            if(i==1)
                printf(".");
            printf("0");
           }
        }
        else if(sum==num)
        {
             for(i=0;i<num;i++)
           {
            if(i==1)
                printf(".");
            printf("0");
           }
        }
        else if(f=='-')
        {
            if(s[0]=='-')
            printf("-");
            for(i=0;i<z;i++)
           {
            if(i==1)
                printf(".");
            printf("0");
           }//底数前面z个零。
           puts(d);
        }
        else if(f=='+')
        {
            if(s[0]=='-')
            printf("-");
            if(z<num-1)//确定小数点是否还存在
            {
                for(i=z+1;i<num;i++)
                d[i+1]=d[i];
                d[z+1]='.';
                d[num+1]='\0';
                puts(d);
            }
            else
            {for(i=num;i<=z;i++)
              d[i]='0';
              d[i]='\0';
              puts(d);}
    
        }
    
        return 0;
    }
    
    
    
    展开全文
  • 使用科学计数法进行加减乘除的 要求输入科学计数法进行两者之间的加减乘除运算 并以科学计数法的形式输出 如: Values input: 0.25000e3 0.20000el Sum: 0.25200e3 Difference: 0.24800e3 Product: 0.50000...
  • 1024 科学计数法 (20 分) 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [±][1-9].[0-9]+E[±][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位,该数字及其指数部分的...

    1024 科学计数法 (20 分)

    科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [±][1-9].[0-9]+E[±][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位,该数字及其指数部分的正负号即使对正数也必定明确给出。

    现以科学计数法的格式给出实数 A,请编写程序按普通数字表示法输出 A,并保证所有有效位都被保留。

    输入格式:
    每个输入包含 1 个测试用例,即一个以科学计数法表示的实数 A。该数字的存储长度不超过 9999 字节,且其指数的绝对值不超过 9999。

    输出格式:
    对每个测试用例,在一行中按普通数字表示法输出 A,并保证所有有效位都被保留,包括末尾的 0。

    输入样例 1:

    +1.23400E-03
    

    输出样例 1:

    0.00123400
    

    输入样例 2:

    -1.2E+10
    

    输出样例 2:

    -12000000000
    

    思路为移动小数点:
    当指数为正,小数点向右移;指数为负小数点向左移
    指数为正时,需要比较指数和有效位数:
    指数大于有效位数则在后面补若干个0;指数小于有效位数则要在对应位置加小数点;若二者相等则既不补零也不加小数点
    指数为负时先输出“0.”,接若干0和有效数

    #include<stdio.h>
    #define MAX 9999
    int main()
    {
        //数据初始化
        char sgn1,sgn2;
        int a[MAX],d,i=0,index=0,k=0;
        //输入
        sgn1 = getchar();
        if(sgn1=='-') printf("-");
        d = getchar();
        a[0] = d-'0';
        getchar();//dot
        d = getchar();
        while(d!='E')
        {
            i++;
            a[i] = d-'0';
            d = getchar();
        }
        sgn2 = getchar();
        d = getchar();//得到index
        index+=d-'0';
        d = getchar();
    	while(d!='\n')
        {
        	k++;
        	index*=10;
        	index+=d-'0';
        	d = getchar();
        }
        //输出
        if(sgn2=='-')
        {
            printf("0.");
            for(int j=1;j<index;j++)
            {
                printf("0");
            }
            for(int j=0;j<=i;j++)
            {
                printf("%d",a[j]);
            }
        }
        else{
            for(int j=0;j<=i;j++)
            {
                printf("%d",a[j]);
                if(j == index&&j!=i) printf(".");
            }
            if(index>i)
            {
                for(int j=1;j<=index-i;j++) printf("0");
            }
        }
        printf("\n");
        return 0;
    }
    
    展开全文
  • PAT乙级1024 科学计数法C语言科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [±][1-9].[0-9]+E[±][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位,该数字及其...
  • 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [+-][1-9].[0-9]+E[+-][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位,该数字及其指数部分的正负号即使对正数也必定明确...
  • 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [±][1-9].[0-9]+E[±][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位,该数字及其指数部分的正负号即使对正数也必定明确...
  • 1024 科学计数法C语言详解)

    千次阅读 2020-03-20 22:27:36
    科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [±][1-9].[0-9]+E[±][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位,该数字及其指数部分的正负号即使对正数也必定明确...
  • #include <iostream> #include <cstring> static void negative(char arr1[],char arr2[], int address); static void positive(char arr1[], char arr2[],int address); static int char_to_number...
  • 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[+-][1-9]"."[0-9]+E[+-][0-9]+,即数字的整数部分只有1位,小数部分至少有1位,该数字及其指数部分的正负号即使对正数也必定明确给...
  • 关于C语言中的科学计数法问题。

    万次阅读 2016-09-19 08:07:26
    变量不能作为e的指数?是的。doublea=3.5e2; doublea=3.5e0; doublea=3.5e-2; 只能是字面常量,而且必须是整数,正负0均可。。 doublea=3.5e2.1;//小数不行。。 doublea=3.5e;//没有指数也不行。...//变量也不...
  • 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [±][1-9].[0-9]+E[±][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位,该数字及其指数部分的正负号即使对正数也必定明确...
  • 1024 科学计数法 (20 分) 代码如下 #include<string.h> int main(void) { char head,a[10001]= {0}; int ex=0; scanf("%c%c.%[0-9]E%d",&head,&a[0],a+1,&ex);//输入拆分 if (head == '-') ...
  • 1024 科学计数法 (20分) 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [±][1-9].[0-9]+E[±][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位,该数字及其指数部分的...
  • 1024. 科学计数法 (20)题目: 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[+-][1-9]”.”[0-9]+E[+-][0-9]+,即数字的整数部分只有1位,小数部分至少有1位,该数字及其指数部分...
  • 1024 科学计数法C语言

    千次阅读 2019-03-03 22:20:00
    设计思路: 1.数字的正负号决定输出普通数字的正负 2.指数的正负号决定小数点的移动
  • #include <iostream> using namespace std; int main(){ string s, s1, s2, s3, ans; cin >> s; s1 = s.substr(0, 2); s2 = s.substr(3, s.find('E')-3); s3 = s.substr(s.find('E')+1);... if(s...
  • 科学计数法向一般数字的转化,数组实现,以及浮点数实现法
  • B1024/A1073 科学计数法 (20分)【C语言】 原题链接 晴神… 题目描述: 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [±][1-9].[0-9]+E[±][0-9]+,即数字的整数部分只有 1 位,...

空空如也

空空如也

1 2 3 4 5 ... 13
收藏数 259
精华内容 103
关键字:

c语言科学计数法

c语言 订阅