输出格式(以整形为例,其他类似):
- %d是普通的输出。
- %5d是将数字按宽度为5,采用右对齐方式输出,若数据位数不到5位,则左边补空格,若数据位数超过5位,则正常输出。
- %-5d就是左对齐。
- %05d,和%5d差不多,只不过左边补0,而不是补空格。
- %.5d从执行效果来看,和%05d一样。
定义二维数组时,行可省略,列不可省,例如int a[ ][4] 。
运算符相关:
- 求余运算符两边必须是整型,即对整数求余。
- 双目运算符优先级高于赋值运算符,故表达式c=(c)?a++:b—即 将右边双目运算符的结果赋值给c;双目运算符自右向左结合,例如(a>b)?m=1:(a<b)?m=0:m=2表达式中,先算右边的值。
- 赋值运算符,a*=b+1相当于a=a*(b+1),而不是a=a*b+1,也就是对后面的整体进行运算。
在C语言中,整型数据在内存中以补码的形式存储。
static类型——声明静态变量:
static放在变量前用来声明一个变量为静态变量;
局部变量说明为static类型,其生存期将得到延长,该变量作用域消失了但数据不会被销毁。
固定题型的一些方法
1、判断是否为闰年:
判断条件为:四年一闰,百年不闰,四百年再闰。即能被4整除且不能被100整除,或能被400整除,则为闰年。
#include<stdio.h>
int main()
{
int year,leap;
printf("输入一个年份year:");
scanf("%d",&year);
if((year%4==0 && year%100!=0) || (year%400==0))
leap=1;
else
leap=0;
if(leap)
printf("%d是闰年\n",year);
else
printf("%d不是闰年\n",year);
return 0;
}
2、求两个数的最大公约数:
(a)辗转相除法
思路:将两个整数(a>b时)求余c=a%b,如果c=0,则b为最大公约数;如果c!=0,则a=b,b=c,继续循环直到c=0时循环结束。
#include <stdio.h>
int main()
{
int a,b,c,t;
printf("请输入两个整数:");
scanf("%d %d",&a,&b);
if(a<b)
{
t=a,a=b,b=t;
}
while((c=a%b)!=0)
{
a=b;
b=c;
}
printf("这两个数的最大公约数为:%d\n",b);
return 0;
}
(b)更相减损法
思路:如果a>b,a=a-b,如果b>a,b=b-a;如果a=b,则a或b为最大公约数,如果a!=b,则继续循环直到a=b时循环结束。
#include <stdio.h>
int main()
{
int a,b,c,t;
printf("请输入两个整数:");
scanf("%d %d",&a,&b);
while(a!=b)
{
if(a>b)
a=a-b;
if(b>a)
b=b-a;
}
printf("这两个数的最大公约数为:%d\n",b);
return 0;
}
3、求两个数的最小公倍数:
先求a与b的最大公约数c,则a*b/c为最小公倍数。