个人总结,学c的赶快看
1….++a 和 a++ 的区别:
++a 先加在赋值 a++ 先赋值在加 后者赋给变量b的值为a而不是a+1后的值
2….按位与 同为1时为1,其他为0 如: 1110 & 1010 =1010
按位或 同为0时为0,其他为1 如:1110 | 1010 =1110
3…. ~:非运算 按位取反 如: ~1111 = 0000
4…. 按位异或 相同位数字不同为1 相同为0 如:1010 ^ 0110 =110
左移一位相当于成乘上2
5….条件为一个范围时 (表达式 与、或 表达式)
scanf时,变量前加&符号 switch里面为表达式,case后为冒号;碰到break终止 continue 只结束本次循环
6…. 条件运算符 ? a>b ? a:b 真为前者 假为后者
7….求两个数的最大公约数和最小公倍数
先用大的一个数除以小的一个数,得第一个余数; 再用小的一个数除以第一个余数,得第二个余数;又用第一个余数除以第二个余数,得第三个余数;这样逐次用后一个数去除前一个余数,直到余数是0为止。那么,最后一个除数就是所求的最大公约数(如果最后的除数是1,那么原来的两个数是互质数)。
例如求1515和600的最大公约数,
第一次:用1515除以600,商2余315;
第二次:用600除以315,商1余285;
第三次:用315除以285,商1余30;
第四次:用285除以30,商9余15;
第五次:用30除以15,商2余0。
1515和600的最大公约数是15。
两个正整数的最小公倍数=两个数的乘积÷两个数的最大公约数
8…产生随机数
arr[i]=10+rand()%90 表示产生10到100的随机数
9….所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数
本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
10…字符串不知道长度的时候 for ( ; arr[i] ;)
11….定义一个20个元素的数组,要求范围在x=30--y=70之间(用随机数) 如:循环体内: a[i] = arc4random()%41+30 ----------------> arc4random()%(y-x+1)+x
12…冒泡排序 // n个元素 比较n-1趟
13…..字符在数组中的应用
strlen() 长度
strcpy() 拷贝
strcat() 拼接
strcmp() 比较 //目的串 源串
char str[] = {‘o‘,‘k‘}
char str[] = "ok"
区别:
第二个隐含一个结束符 ‘ \0 ‘
14..//字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素
char str[10]={‘I‘,‘‘,‘a‘,‘m‘,‘h‘,‘a‘,‘p‘,‘p‘,‘y‘};
15…
//只要不遇到回车,就一直取输入的字符
char a = 0;
while ((a = getchar()) != ‘\n‘) {
printf("a = %c\n", a);
}