#include <stdio.h>
int main()
{
printf("计算两个时间差");
int hour1,minute1;
int hour2,minute2;
scanf("%d %d",&hour1,&minute1);
scanf("%d %d",&hour2,&minute2);
int t1=hour2 - hour1;
int t2=minute2 - minute1;
printf("时间差为%d小时%d分\n",t1,t2);
return 0;
}
计算两个时间差1 50 2 10
时间差为1小时-40分
使用if判断语句:
#include <stdio.h>
int main()
{
printf("计算两个时间差");
int hour1,minute1;
int hour2,minute2;
scanf("%d %d",&hour1,&minute1);
scanf("%d %d",&hour2,&minute2);
int t1=hour2 - hour1;
int t2=minute2 - minute1;
if ( t2 < 0 ){
t2=60 + t2;
t1 --;
}
printf("时间差为%d小时%d分\n",t1,t2);
return 0;
}
计算两个时间差1 50 2 10
时间差为0小时20分
Process exited after 8.144 seconds with return value 0
::: tip if (条件成立) { ... } ::: if判断语句表示如果满足if语句的条件,就执行if语句后大括号内的程序。
计算两个值之间的运算叫做关系运算 ::: tip C语言中的“!”一般表示非、否、不是、not的意思。 ::: 关系运算只有两个结果。当两个值的关系符合关系运算符的预期时,关系运算的结果为整数1,否则为整数0。
#include <stdio.h>
int main()
{
printf("%d\n",5 == 3);
printf("%d\n",5 >= 5);
printf("%d\n",5 != 3);
return 0;
}
0
1
1
Process exited after 0.01066 seconds with return value 0
::: warning 关系运算符的优先级比算术运算的优先级低,但比赋值运算优先级高。 :::
#include <stdio.h>
int main()
{
printf("%d\n",5 >= 3+1);
return 0;
}
1
Process exited after 0.01293 seconds with return value 0
输出结果为1证明先计算了3+1,得出结果和5进行比较,5 >= 4,输出1,如果关系运算符优先级高于算术优先级,则先计算5 >= 3,输出1,再和3相加,输出结果2。
判断是否相等的 == 和 != 的优先级比其他的要更低一些,目的是判断两个关系的结果。
5 > 3 == 6 > 4
::: warning
连续的关系运算是从左到右计算的。
:::
6 > 5 > 4 (6 > 5成立,结果为1,1 > 4不成立,结果为0。)
a == b == 6 (先计算a和b是否相等,相等则为1不相等则为0,再与6相比较)
注释 以“//”开头的语句是程序的注释。 注释是插入程序中为读者提供解释信息的。注释对程序的功能没有影响,但可以使得程序更容易被人读懂。 延续数行的注释需要使用多行注释。 多行注释由“/”开始,以“/”结束。以下两种:
/* 注释的内容 */
/*
注释的内容
*/
编写一个找零计算器的程序:
#include <stdio.h>
int main()
{
//初始化
int price;
int bill;
//读取价格和金额
scanf("%d",&price);
scanf("%d",&bill);
//判断
if (bill >= price) {
printf("应该找您%d元\n",bill - price);
}
if (bill < price) {
printf("支付金额不够\n");
}
return 0;
}
if语句实例:
#include <stdio.h>
int main()
{
//最小年龄
const int Minor = 20;
int age;
printf("请输入年龄\n");
/*输入
fegklhjrkhrhahrejuje42ere
4二十页hyuaswy4y
geshyue645656
耶4我也越野语言
*/
scanf("%d",&age);
printf("今年已经%d岁了\n",age);
if(age <= Minor) {
printf("年轻真好,");
}
printf("把握青春\n");
}
请输入年龄
18
今年已经18岁了
年轻真好,把握青春
请输入年龄
25
今年已经25岁了
把握青春
上面的找零计算器中,可以将两个判断语句简化如下:
#include <stdio.h>
int main()
{
//初始化
int price;
int bill;
//读取价格和金额
scanf("%d",&price);
scanf("%d",&bill);
//判断
if (bill >= price) {
printf("应该找您%d元\n",bill - price);
} else {
printf("支付金额不够\n");
}
return 0;
}
即在if语句结束的大括号后,加上一个else语句。 ::: tip else表示否则的意思。 ::: 简化后的找零计算器的流程图如下:
比较数字大小的三种方案 方案一:
#include <stdio.h>
int main()
{
int a;
int b;
int Max = 0;
printf("输入a和b的值:");
scanf("%d %d",&a,&b);
if (a < b) {
printf("Max=b",b);
}
if (a > b) {
printf("Max=a",a);
}
if (a == b) {
printf("%d",Max);
}
return 0;
}
输出数值更大的数字,如果相等,输出0。 方案2:
#include <stdio.h>
int main()
{
int a;
int b;
int Max = 0;
printf("输入a和b的值:");
scanf("%d %d",&a,&b);
if (a < b) {
printf("Max=b",b);
} else {
printf("Max=a",a);
}
return 0;
}
对于a和b相等的情况没有做具体区分。 方案3:
#include <stdio.h>
int main()
{
int a;
int b;
printf("输入a和b的值:");
scanf("%d %d",&a,&b);
int Max = a;
if(a < b) {
printf("Max=b",Max,b);
}else {
printf("Max=a",a);
}
return 0;
}
IF语句总结 一个基本的if语句由关键字if开头,if后跟一个(),()中是表达式,如果表达式计算结果不为0,即表达式成立,则执行()后的{}中的语句;如果()中的表达式不成立,{}中的语句会被跳过。 if语句的表达式后可以没有{},如果没有{},紧跟在if后的语句将被作为if语句条件成立时执行的内容。 ::: tip 如下在if语句的()后没有“;”,而在下一行的赋值语句后有一个表示语句结束的“;”,表示赋值语句是if语句的一部分,if语句控制这条赋值语句是否被执行。
if (total > amount)
total += amount + 10;
同样else后也可以不用{},“;”放在else执行语句后。 ::: 计算薪水的程序:
#include <stdio.h>
int main()
{
const double RATE = 8.25;
const int STANDARD = 40;
double pay = 0.0;
int hours;
printf("请输入工作小时数\n");
scanf("%d",&hours);
printf("\n");
if (hours > STANDARD)
pay = STANDARD * RATE + (hours - STANDARD)*(RATE * 1.5);
else
pay = hours * RATE;
printf("应付薪水为%f",pay);
return 0;
}
判断成绩是否及格:
#include <stdio.h>
int main()
{
const int PASS = 60;
int score;
printf("请输入成绩:");
scanf("%d",&score);
printf("你输入的成绩是%d\n",score);
if (score >= PASS)
printf("恭喜你,");
else
printf("很遗憾,");
printf("再见了");
return 0;
}