1,加减乘除取模:
都是用在算法上的,其中+-*/是直接用在外面的,例如:
int a=1;int b=2;
c=b-a;
printf("%d\n",c);
当然取模也是可以的,而取模使用%,其概念是将两个参数相除取余数
2,赋值操作符:一个将算法简便化的操作符
例如(+=/-=/...),是将自身进行算法,就好像下面这样:
int a=1;int b=3;
a+=b;
其中a+=b就是a=a+b的意思,最终的结果就是4
3,单目操作符:进行参数自我加减的
(1) 例如(++/--),效果如下:
int a=2;
a++就会将整形a赋值为3了,当然,++a也是这样,但是这两个会存在一定的差别:
(2)这就是涉及到前置后置的点了,
前置:++a,这样会将a赋值多一个数,并且会将这个赋值之后的a作用在算法里面,也就是先赋后用;
后置:a++,这样也会将a赋值多一个数,但是只会将这个还没赋值a作用在算法里面,也就是先用后赋。
4,强制类型转化:将一个数据类型转换为另一个数据类型的操作
例如以下:
float x = 10.75;//这个是浮点数
int y = (int) x;//通过用(int)的方式将浮点数转换成整形,其中的int可以是任意别的形式,float也是可以改变的; 而结果就是y=10
5,printf的剖析:
(1)占位符,
有这么多,但是用得比较多的就是其中几个,多做实践就可以知道那些用的多了hh
(2)输出格式:限定宽度%4d(向右对齐);倘若想要向左对齐就在前面加上一个空格。(上面的4是可以改变的,任意数值)
(3)总是显示正负号:将(%d)变成(%+d)
(4)限定小数位数:(%.2f)(2的位置是限定的位数)
(5) 然后就是对printf的以上操作符都是可以结合使用的,例如(%6.2f)里面就结合了限定宽度6个以及浮点数小数后面保留2位
(6)参数传参:(%*.*f),这个是最小宽度和小数位数的传参,都可以用*来代替,通过printf()的参数传入,如下: (这个点细讲,因为我自己不是很会,特别做一下记录)
#include <stdio.h>
int main()
{
printf
(
"%*.*f\n"
,
6
,
2
,
0.5
);
return
0
;
}
// 等同于printf("%6.2f\n", 0.5)
这样做的方法就是可以使两个参数更加灵活,可以通过代数将不同变量带入
6,scanf输入功能:
(1)一个向用户索取参数值的函数,用法如下:
int main()
{
int cj =0;
printf("请输入成绩:");
scanf("%d",&score); //&的使用是因为该位置要放一个地址,而使用这个也可以构成一个地址(scanf中)
printf("成绩是:%d\n",score);
return 0;
}
(2)原型定义在stdio中,语法和printf相似==>scanf("%d",&i),百分号那个位置放占位符,是提取数据的类型,也可以用多个来表达==>scanf("%d%d%f%f",&i,&j,&x,&y); 这样的输入会一一对应到数据里面,但是注意不能玩花的,类型输入不对应%下的类型会出现错误的(多数据输入的时候需要用空格、空白字符、换行符、制表符来分隔开,
但是,用了什么隔开,输入的时候就也要用什么隔开)
(3)scanf的返回值:
返回一个整数,表示成功读取了几个数;如果没有任何项或者匹配失败就会返回0;
如果在成功读取任何数据之前,发⽣了读取错误或
者遇到读取到⽂件结尾,则返回常量 EOF
可以怎样去提取这个返回值呢?如下:
int r=scanf(....忽略)
printf("r=%\n",r)
注:这里可以用一个提前终止的键:CTRL+z(点一次不行就点多两次),如果一个数字都不输入就会报-1也就是EOF
(4)占位符:这就要copy咯
•
%c
:字符;
•
%d
:整数;
•
%f
:
float
类型浮点数;
•
%lf
:
double
类型浮点数;
•
%Lf
:
long double
类型浮点数;
•
%s
:字符串;
•
%[]
:在⽅括号中指定⼀组匹配的字符(⽐如
%[0-9]
),遇到不在集合之中的字符,匹配将会停止。
(5)复制忽略符:对待可能输入不符合预期的格式
类似这样:scanf("%d-%d-%d",&year,&month,&day) 输入的时候需要严格按照百分号键的-来输入;
这样就会产生不符合原本预期输入的状况,于是就有了
%*c
来造化,像这样:
scanf
(
"%d%*c%d%*c%d"
, &year, &month, &day);
不论我们输入时在中间加什么来连接都可以有分隔的效果,因为这个
%*c
是将数据忽略的,忽略之后就可以变成空格了
注
:
这个点%*后面跟的好像是类型,也就是说在占位符中间加上一个*就会被系统自动忽略了