我们在日常的编码中常常会看到预处理指令有这两种形式#include<stdio.h>和#include”stdio.h”,那么这两种有什么不同那?
用尖括号的话,编译时会先在系统include目录里搜索,如果找不到才会在源代码所在目录搜索。
使用双引号则相反,会先在源代码目录里搜索,如果未找到则去系统默认目录查找,通常用于包含程序作者编写的头文件。
但是,我们知道计算机的运算速度是很快的,我们几乎是感受不到二者的差异的
字符型在一定范围内可以和整型通用,实际上使用时仅限于大小写字母,以及数字
通用指的是字符型在内存中以ASCII码存放 A 65
一定范围指的是二者所站的字节不同 :char 占1个字节,int2-4个(跟编译系统有关系)
我认为需要重点了解的是分隔符 —数值型数据的输入,不同的分隔符表示输出的方式的不同,我一开始就在这个方面吃了大亏,明明自己写的程序没毛病,可是输入的时候走是没办法的正常输入。
%d,%f,%lf 12 3 56
%C —一个字符 assd
%d%c 输入123a
输出除了printf还有putchar
输入除了scanf还有getchar
但是与scanf和printf不同的是putchar和getchar只能输入输出字符型,getchar函数没有参数,只能输入一个字符,如果行要输入多个字符就要用到getchar函数。
这堂课还学习了最基本的选择结构和条件判断:if语句
像之前写的一元二次函数:
#include "stdio.h"
#include "math.h"
void main()
{
double a,c,b,disc,x1,x2,p,q;
scanf("%lf%lf%lf",&a,&b,&c);
disc=b*b-4*a*c;
p=sqrt(disc);
q=-b;
x1=(q+p)/(2.0*a);
x2=(q-p)/(2.0*a);
printf("x1=%f\tx2=%f\t",x1,x2);
return 0;
}
就只能自己先判断disc的正负,现在加上if语句:
#include “stdio.h”
#include “math.h”
void main()
{
double a,c,b,disc,x1,x2,p,q;
scanf("%lf%lf%lf",&a,&b,&c);
disc=bb-4ac;
if((disc)<0)
{
Printf(“此方程无实根!”)
}
if((disc)>=0)
{p=sqrt(disc);
q=-b;
x1=(q+p)/(2.0a);
x2=(q-p)/(2.0*a);
printf(“x1=%f\tx2=%f\t”,x1,x2);
}
return 0;
}
我们尝试输入1 1 3,就出现下面情况