C语言做判断
if机制
if(条件成立){
……
}
//计算时间差
int main()
{
int hour1,minute1;//第一个时间点
int hour2,minute2;//第二个时间点
scanf("%d %d",&hour1,&minute1);
scanf("%d %d",&hour2,&minute2);
int ih=hour2-hour1;
int im=minute2-minute1;
if(im<0){
im=60+im;
ih--;
}
printf("时间差是%d小时%d分\n",ih,im);
return 0;
}
2.怎样做判断:关系运算符
==相等 !=不相等 > >= < <=
关系运算的结果,只有两个值1关系成立或0关系不成立
int main()
{
//注意看关系运算符的结果,成立是1,不成立是0
printf("%d\n",5==3);//0
printf("%d\n",5>3);//1
printf("%d\n",5<=3);//0
return 0;
}
3.关系运算符优先级比算术运算符低,但比赋值运算符高
int main()
{
printf("%d\n",7>=3+4);//结果是1,说明3+4先算,说明关系运算符优先级比算术运算符低
return 0;
}
int r=a>0;//说明关系运算符比赋值运算符优先级要高,先算a>0
在所有关系运算符中,它们的地位也不完全相同
= =和!=的优先级其他的低,而连续的关系运算符是从左到右进行的
5>3= =6>4//因为5>3,6>4,1= =1所以结果是1
6>5>4//按顺序6>5,1不大于4,所以结果为0
a= =b= =6//a和b的值不管是否相等,0或1,都不可能等于6,所以结果为0
a==b>0//先算b>0
4.注释是为了人读懂,计算机并不会理睬 //C99独有单行注释
5.流程图,圆角框表示开始或结束,方框表示做的事情,菱形表判断,平行四边形表示输入或输出
6.判断完还有否则,否则的话
if-else语句
//计算找零
int main()
{
//初始化
int price;
int bill;
//读入金额和票面
printf("请输入金额:");
scanf("%d",&price);
printf("请输入票面:");
scanf("%d",&bill);
//计算找零
if(bill>=price){
printf("应该找您:%d\n",bill-price);
}else{
printf("您的钱不够\n");
}
return 0;
}
7.if语句后面也可以没有大括号{},
当没有大括号时,紧跟在if后面的那一句话就会作为条件成立的时候要执行的那句话
if这一行是不加分好的,if若没有大括号,紧跟下一条语句结束才加分号;
else同理
int main()
{
//计算薪水
const double RATE=8.25;
const int STANDARD=40;
double pay=0.0;
int hours;
printf("请输入工作的小时数");
scanf("%d",&hours);
printf("\n");
if(hours>STANDARD)
pay=STANDARD*RATE+(hours-STANDARD)*(RATE*1.5);
else
pay=hours*RATE;
printf("应付工资:%f\n",pay);
return 0;
}
int main()
{
//计算成绩
const int PASS=60;
int score;
printf("请输入成绩");
scanf("%d",&score);
printf("您输入的成绩是%d\n",score);
if(score<PASS)
printf("很遗憾,这个成绩没有及格");
else
printf("祝贺你,这个成绩及格了");
printf("再见\n");
return 0;
}
8.嵌套的if-else
当if的条件满足或者不满足的时候要执行的语句也可以是一条if或if-else语句
缩进格式不能暗示if-else的匹配,每个else是离它最近的那个if的
int main()
{
//比较三个数的大小
int a,b,c;
scanf("%d %d %d",&a,&b,&c);
int max=0;
if(a>b){
if(a>c){
max=a;
}else{
max=c;
}
}else{
if(b>c){
max=b;
}
else{
max=c;
}
}
printf("The max is %d\n",max);
return 0;
}
9,级联的if-else
if(exp1)
st1;
else if(exp2)
st2;
else
st3;
int main()
{
//分段函数
//f(x)=-1;x<0
// 0;x=0
// 2x;x>0
int x;
scanf("%d",&x);
int f=0;
if(x<0){
f=-1;
}
else if(x==0){//if只要求()里的值是零或非零
f=0;
}else{
f=2*x;
}
printf("f=%d\n",f);
return 0;
}