🎱1.3 顺序结构
⚔️1.3.1 赋值表达式
在C语言可以使用=实现赋值操作
int n = 5; n = 6; n = m = 5;
赋值运算符可以通过将其他运算符放在前面实现赋值操作的简化。
注意一个点:赋值符号是从后往前看的,比如最后一个就是把5赋值给m,然后再把m的值赋给n。
最后一个栗子🌰结束
#include<stdio.h> int main(){ int n = 12, m = 3; n /= m + 1; //与n = n / (m + 1) 一样 m %= 2; //与m = m % 2一样 printf("%d %d\n", n , m); return 0; }
输出结果:3 1
💻1.3.2使用scanf和printf进行输入输出
⌨️1.scanf函数的使用
scanf是输入函数,格式为:scanf("格式控制",变量地址);
举个栗子🌰:scanf("%d",&n);
%d(格式符号)代表读入一个整数,然后将这个整数保存到n里面。(&为取值符号),这里记住scanf需要的是一个地址就好,之后在指针的时候我会再说这里。
那么常见的格式符号还有哪些呢?
可以发现字符串没有取址,是因为数组本来就是一个首地址0.0(看不懂先有个印象吧,还会讲)
其实如果需要读入16:20:20这种形式的数据怎么办呢?
scanf("%d:%d:%d",&a,&b,&c)就好了,其实就是去对比原本的输入,读到对应的数据就进行拆分。
另外,scanf读入整型和浮点型都是以空格或者回车作为结束符的。
但是%c是可以读入空格和回车的,所以读入的时候需要注意。后面再说
🖥2.printf函数的使用
printf的基础格式为printf("格式控制",变量名称);
其实和scanf的运用很类似,需要注意的有两个点
double的输出格式为%f, 输入格式位%lf。
printf给出的是变量的名称,不需要给出地址 不需要&!!!
三种实用的输出格式
%md
主要用于整数的输出,当不足m位的时候右对齐输出,高位补空格。
eg.printf("%2d",n);
%0md
主要用于整数的输出,这次不足的时候使用0进行高位的填充。
eg.printf("%05d",n);
%.mf
保留xx位小数,就是这个的功能。
eg.printf("%.5f",fl);
🖨1.3.3 使用getchar和putchar输入/输出字符
直接看一个例子吧
#include<stdio.h> int main(){ char c1, c2, c3; c1 = getchar(); getchar(); c2 = getchar(); c3 = getchar(); putchar(c1); putchar(c2); putchar(c3); return 0;
输入数据:abcd,输出数据:acd
是不是很简单,但是要注意getchar可以接收空格和回车,偶尔比scanf好用一些。
⚖️1.3.4 注释
1.使用/**/注释
这两个符号之间的都会被注释掉。
#include<stdio.h> int main(){ int a, b; scanf("%d%d",&a,&b); /*a++; b++; a = a * 2; */ printf("%d %d",a,b); return 0; }
2.使用//注释
这个符号的作用只能注释掉一行,很常用,就不举例了0.0
💡1.3.5 typedef
typedef是一个很有用的小零件。基本语法:typedef 任意量 一个名字
主要作用就是重命名。最常见的运用在结构体,因为结构体的名字太长了不好写,233
举个🌰
#include<cstdio> typedef long long LL; int main(){ LL a = 123456789012345LL, b = 1234567890123456LL; printf("%lld",a+b); return 0; }
其中数字后面的LL只是代表这个是个长整型常量,不记得往上翻0.0.
🔑1.3.6常用math函数
有些函数是已经有库的,我们没必要再自己写,我这里记录一部分,需要用到这些,一定要记得引用math库#include
🐳课后习题
等下要去试试一个竞赛,所以先放题,晚上我放题解,太多了,,失策了-.-大家写完还希望给个打卡0.0
题目
http://codeup.hustoj.com/contest.php?cid=100000566
题解在这里:https://blog.csdn.net/qq_17593855/article/details/121881267