字符串输入
在字符串数组a[n][n]输入时运用如下
for(i=0;i<n;i++)
scanf("%s",a[i]);
此时一定注意i要从0开始,如果从1开始,j显然是从0开始存,会导致存储错误
如使用
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%c"&a[i][j]);
此时一定注意输入中的空格和回车,容易被%c接收
位运算
& 用于取出一个数的某些二进制位
比如取出二进制的最后一个1(不一定是最后一位,是从右向左数第一个1)可以用:x&(-x) 或 x&(-x+1) (负数按补码存)
&可以用于计算两数相加的进位
| 用于将一个数某些位设为1
^ 异或 不使用中间变量交换两个数 a=a^b b=b^a a=a^b (仅限整型,加减法可实现多类型 a = a + b;b = a - b;a = a - b;但容易出现精度缺失,也可以用乘除法a=a*b;b=a/b;a=a/b;但也会造成精度缺失并且b不能为0) 还可用于将一个数某些位取反
^可用于计算两数相加的个位数
&与^连用可用于计算两数相加,迭代使用a&b<<1+a^b,直到进位a&b为0
INIT_MAX,INT_MIN
存在于#include<limits.h>中