嗨害嗨

分类 C_Program 下的文章

14/5
2017

C_Program 学习笔记_3

上回讲到scanf格式化输入语句,利用格式化输入和输出的特性来转换进制。由于程序中肯定会用到不止字母啊,整数啊这样的字符,所以下面介绍数据类型,所谓数据类型,就是在程序前面告诉计算机,这个程序要用到哪种精度、取值范围、 数据所表示的信息

整型—— int

长整型—— long int

短整型—— short int

无符号整型—— unsigned int

浮点型

单精度—— float

双精度—— dobule

字符型—— char

布尔型—— bool

枚举型—— enum

语言入门,我们并不需要认识全部数据类型,在这里介绍整形int,浮点型里面的单精度float,双精度double,字符型char。

首先是整形,它可以在程序前面定义如字母,整数这类,但用到小数,负数这类就要请到浮点型来帮我们定义了。可以用一个程序来说明它们的区别:

#include <stdio.h>


int main()
{
 int a ; //定义整形变量a
 float b ; //定义浮点型变量b
 printf("输入a:"); //提示用户输入a的值

 scanf("%d",&a);

 printf("输入的a是:%d",a);

 return 0;
}

运行一下,我们先输入8,回车,可以看到可以输出8

但当我们输入有小数的数字时,程序只输出整数部分,由此可以说明整形int只认整数

接下来试试浮点型float

#include <stdio.h>


int main()
{
 int a ; //定义整形变量a
 float b ; //定义浮点型变量b
 //printf("输入a:"); //提示用户输入a的值

 //scanf("%d",&a);

 //printf("输入的a是:%d",a);
 printf("输入b:");
 scanf("%f",&b);
 printf("输入的b是:%f",b);
 return 0;
}

需要注意的是,用浮点型时不能用%d占位了,因为这是给整形用的

浮点型我们需要用%f来占位。运行程序,输入3.141592658,回车

发现程序输出只到小数后面第六位,这就是我们所说的精度了。如果想要改为double双精度变量,那么占位符需要改成%lf。

还有一个char字符型,有了这个我们就可以输入字母了

#include <stdio.h>


void main()
{
 char c;
 printf("输入c字符:");
 scanf("%c",&c);
 printf("c就是:%c",c);

}

在这里,字符型的占位符是%c

 

 

下面就利用上面说到的数据类型来写一个整型,字符型,浮点型混合运算程序:

#include <stdio.h>
#include <stdlib.h>

int main()
{
 int i=1;
 char c='A';
 float f=2.2f;
 double sum=i+c+f;
 printf("%f\n",sum);
 return 0;
}

当不同数据类型混合运算时,程序会先将char转换为int整型,将int转换为double,再将float转成double,最后进行计算。

在这个程序里面,大写A会转成ASCII码,为65,这样程序就能运算了。

+ MORE