一、scanf和printf
1.printf()
printf() 的作⽤是将参数⽂本输出到屏幕。
其中,\n 表示换行 ,也就是换行符
在printf() 中,除了换行符,还有占位符
列举如下:
%a
| ⼗六进制浮点数,字⺟输出为⼩写。 |
%A
| ⼗六进制浮点数,字⺟输出为⼤写。 |
%c
| 字符 |
%d | 十进制整数 |
%e
|
使⽤科学计数法的浮点数,指数部分的
e
为⼩写。
|
%E |
使⽤科学计数法的浮点数,指数部分的
E
为⼤写。
|
%i |
整数,基本等同于
%d
。
|
%f
|
⼩数(包含
float
类型和
double
类型)
|
%g |
6个有效数字的浮点数。整数部分⼀旦超过6位,就会⾃动转为科学计数法,指数部分的
e 为⼩写。
|
%G
|
等同于
%g
,唯⼀的区别是指数部分的
E
为⼤写
|
%hd
|
⼗进制 short int 类型。
|
%ho
|
⼋进制 short int 类型。
|
%hx
|
⼗六进制 short int 类型。
|
%hu |
unsigned short int 类型。
|
%ld
|
⼗进制 long int 类型。
|
%lo
|
⼋进制 long int 类型。
|
%lx
|
⼗六进制 long int 类型。
|
%lu
|
unsigned long int 类型。
|
%lld
|
⼗进制 long long int 类型。
|
%llo
|
⼋进制 long long int 类型。
|
%llx
|
⼗六进制 long long int 类型。
|
%llu
|
unsigned long long int 类型。
|
%Le
|
科学计数法表⽰的 long double 类型浮点数。
|
%Lf
|
long double 类型浮点数。
|
%n | 已输出的字符串数量。该占位符本身不输出,只将值储存在指定变量之中。 |
%o | 八进制整数 |
%p | 指针 |
%s | 字符串 |
%u | 无符号整数 |
%x | 十六进制整数 |
%zd | sinze_t类型 |
%% | 输出一个百分号 |
实践(以%d和%s举例):
占位符还可以限制输出宽度
2.scanf
当我们有了变量,我们需要给变量输⼊值就可以使⽤
scanf 函数
,如果需要将变量的值输出在屏幕上的时候可以使⽤ prinf
函数。
举个栗子:
⽤⼾输⼊数据、按下回⻋键后
,
scanf()
就会处理⽤⼾的输⼊,将其存⼊变量。
我在“请输入成绩:”后写了100,回车后就会显示成绩是100
在使用scanf的时候,编译器会报错
第一种解决方法:要在第一行写上#define _CRT_SECURE_NO_WARNINGS 1
第二种解决方法:在代码上面写#pragma warning(disable:4996)
来跳过报错
scanf的返回值是一个整数,表示
成功读取的变量个数
期中r的值就代表成功读取值,我选择输入两个数后提前终止。
(提前终止VS编译器需要按三次ctrl+z并依次回车)
如果不输入数字终止,则r=-1,即EOF---end of file
在
scanf()
将字符串读⼊字符数组时,不会检测字符串是否超过了数组⻓度,可能导致崩溃。
所以应该
指定
读⼊字符串的最⻓⻓度,即写成
%[m]s
,其中的
[m]
是⼀个整数,表⽰读取字符串的
最⼤⻓度
,
后⾯的字符将被丢弃
。
在scanf中,为了防止解析数据失败,提供了一个赋值忽略符 *
两种不同的输入方法,都保证了结果的正确输出。
二、 if和else语句
在C语⾔中,
0为假,⾮0表⽰真
也就是表达式的结果如果
是0
,则语句
不执⾏
,表达式的结果如果是
不是0
,则语句
执⾏
。
举个栗子:
还有一种情况:嵌套if
举例如下:
注意else悬空!!!else 总是跟最接近 的 if 匹配。
三、关系操作符
关系表达式,⾥⾯使⽤的运算符就称为
关系运算符
,主要有下⾯6个
>
| 大于操作符 |
<
| 小于操作符 |
>=
| 大于等于操作符 |
<=
| 小于等于操作符 |
== | 相等操作符 |
!= | 不相等操作符 |
关系表达式通常返回
0
或
1
,表⽰真假。
第三天完成啦,完结撒花!!!