目录
一、基础知识掌握
1、运算符的优先级
例如:求平均数
#include <stdio.h>
int main()
{
int a,b;
scanf("%d %d",&a,&b);
double c=(a+b)/2.0;
printf("%d和%d的平均数为:%f",a,b,c);
return 0;
}
这里先进行加法运算,再进行除法
但最好不要写的那么复杂,把它拆分表示更为明了和清晰
二、if语句
1、if(条件)
int hour1,min1;
int hour2,min2;
scanf("%d %d",&hour1,&min1);
scanf("%d %d",&hour2,&min2);
int im,ih;
ih=hour2-hour1;
im=min2-min1;
if(im<0){
im = im + 60;
ih --;
}
printf("时间差%d小时%d分钟。\n",ih,im);
有一个条件时可以不加{},但是为了防止出错误,还是最好每个if后面都加{}
2、if-else语句
int x;
scanf("%d",&x);
int f=0;
if (x==0){
f=0;
}else if (x>0){
f=2*x;
}else if (x<0){
f=1;
}
printf("%d\n",f);
else紧跟离他最近的if
3、多路分支Switch-case语句
int type;
scanf("%d",&type);
switch(type){
case 1:
printf("早上好!");
break;
case 2:
printf("中午好!");
break;
case 3:
printf("晚上好!");
break;
default:
printf("大家好!");
break;
这里定义了一个整型变量type,当type=1,输出早上好
但是,如果后面没加break,那就完了,每一个后面都没加
那就会输出全部的内容。break相当于打破这个进程。
int grade;
scanf("%d",&grade);
grade /= 10;
switch(grade){
case 10:
case 9:
printf("A\n");
break;
例如这里:case 10运行到这里什么都没有直接到了case 9
那么输出A,意思就是说成绩在90-100的等级都为A
没有break那么就会出现如下情景:
正确的应该是每一个printf分号后面都加上break;
才能保证区间。
三、while循环
1、do-while
循环体内一定要有改变条件的机会
否则,无限循环
do-while和while的区别在于,do-while循环是在进入循环后才去判断条件是否满足,而while循环是先判断条件是否满足才进入循环。
一定要注意的是while();while后面有分号!!!
int x;
scanf("%d",&x);
int n=0;
do{
n++;
x /=10;
}while(x>0);
printf("%d",n);
与while循环对比看看:
int x;
int n=0;
scanf("%d",&x);
while(x>0){
n++;
x /= 10;
}
printf("位数:%d",n);