• 【CPP】数据和C


    %f是浮点型的占位符,%f.2表示显示到小数点后两位,.2称为修饰词

    变量可以在程序执行过程中变化和指定,而常量不可以。

    【数据类型关键字】int  long  short  unsigned  char   float  double  _Bool  _Complex(复数)  _Imaginary(虚数)

     

    【int 类型】

    整数类型之所以有这么多种(int,unsigned int,long,short等等),他们最主要的区别在于取值范围不同和是否能够取负值。

    整型 int类型的范围是-32768~32767

    声明变量:int a,b,c;  int a;int b; int c;都可以,都是为4个int型变量赋予名称并分配空间。

    赋值:直接赋值a=1;  通过函数scanf("%d",&a);  初始化变量int a=1;

      注:不要在同一个声明语句中同时出现初始化和未初始化变量。(int a,b=1;)易引起误解。

    int型常量:C把大多数整数常量看作int型,如果很长就看做long,更长就看做long long

    打印int型:%d(格式说明符),如果格式说明符和要打印的值的数目不相符,编译器可能无法检查出该错误,所以写的时候一定要注意

    其它进制:八进制前缀0  十六进制前缀0x,格式化说明符分别是%0,%x

        注:要显示0和0x的前缀,必须在说明符中加入符号# (%#x)

    【其他整数类型】

    short:小数值,更少的存储空间 %u   long:大数值,更大的存储空间  %ld %l0八进制     %lx十六进制   

    long long:更更大    unsigned int:无符号,(非符值)

    在诸多整数类型中,首先考虑unsigned类型,大多数时候不需要负数,并且可以取得更大的计数范围

    数值过大会产生溢出的现象

    【字符型】

    实际上储存在计算机中,用的是整数ASCll码,如存储A,实际是65.

    单引号字符,双引号字符串。

    【非打印字符】

    方式一:使用ASCLL码赋值,如蜂鸣char beep = 7;

    方式二:利用转义序列,如char nerf = ‘\n';

    方式三:用十六进制标示字符常量。

    【打印字符】

    %c打印一个字符,如果用%d可打印出字符的ASCLL码

    【_Bool类型】

    布尔类型,整数类型,只需一位存储,表示true,false

     【浮点型】

    float:至少六位有效数字,e-27~e37

    double:(双精度)至少十位有效数字

    long double:更高精度

    【编译器】

     默认情况下,编译器将浮点常量当作double类型,如some是一个float变量:

    some = 4.0 * 2.0

    那么4.0和2.0被存储为double类型,乘积运算使用双精度,而结果被截为float长度,这能保证运算的精度,但是会减慢运算速度。

    但是可以通过f或F后缀使编译器把浮点常量当作float类型,如2.3f,l或L后缀可以使其成为long double类型。

    打印浮点值:%f表示float或double类型,%e表示指数计数法的数字。

    【浮点值的上溢和下溢】

    【复数和虚数类型】

    头文件complex.h包含了复数complex,虚数imaginary。

    注:printf输出时如需换行,只要不在引号内部或一个单词中间换行就行。

      输出浮点变量时如果使用整型的格式%d会输出垃圾值,反之亦然。

    #include<stdio.h>
    int main()
    {
        float salary; 
        scanf("%f",&salary);
        printf("now i know %d.",salary );
        
        return 0;
    }//输出无论如何都是0

      

    通常退格符\b不会删除退回时经过的字符,但是有时会删除。

    #include<stdio.h>
    int main()
    {
        int salary;
        printf("please enter your monthly salary:");
        printf("$_______\b\b\b\b\b\b\b");
        scanf("%d",&salary);
        printf("now i know %d a year you get.",salary*12 );
        
        return 0;
    }

    【刷新输出】

    printf输出时并不是直接把内容传递到屏幕上,在程序和屏幕间有一个称为缓冲区(buffer)的中介存储区域,内容是由缓冲区被传递到屏幕上的。

    那么什么时候缓冲区的内容会被传到屏幕上呢?

    1、缓冲区满了的时候  2、遇到换行符时  3、需要输入时

    手动刷新缓冲区:1、打印一个换行符  2、fflush()函数

    //编程练习 3.11
    
    
    #include<stdio.h>
    int main()
    {
        //输入ASCLL码值输出字符 
        char x=66;
        scanf("%d",&x);
        printf("this char is %c.\n",x);     
        
        //发出警报声并输出指定字符串
        printf("\a By the great Pumpkin.what was that?\n"); 
        
        //读入一个浮点数,分别以小数形式和指数形式打印
        float a=11.23;
        printf("%f\n",a);
        printf("%e",a); 
        
        //输入年龄输出秒数
        unsigned long old;//无符号长整型才不会溢出,溢出会变成负数 
        printf("how old are you?\n");
        scanf("%d",&old);
        printf("now you are %ul seconds old.",old*3.156e7);//一年有3.156e7秒 
        
        return 0;
    }
    //未完 还有两道题

      仅允许非商业转载,转载请注明出处

  • 相关阅读:
    士兵队列训练问题http://acm.hdu.edu.cn/showproblem.php?pid=1276
    Fence Repair http://poj.org/problem?id=3253
    A/B http://acm.hdu.edu.cn/showproblem.php?pid=1576
    房间安排http://acm.nyist.net/JudgeOnline/problem.php?pid=168
    Function Run Fun http://poj.org/problem?id=1579
    盗梦空间http://acm.nyist.net/JudgeOnline/problem.php?pid=125
    如何在Chrome中使用”并非来自Chrome网上应用店”的扩展程序
    C++中的函数指针模板
    C/C++中的源文件与头文件的区别
    C++同名函数的各种问题
  • 原文地址:https://www.cnblogs.com/Archimedes/p/7049590.html
Copyright © 2020-2023  润新知