判断与循环
1.判断
如果
if(条件成立)
{..........}
else
{...........}
关系运算
-
计算两个值之间的关系,叫关系运算。
| 运算符 | 意义 |
|---|---|
| == | 相等 |
| != | 不等于 |
| > | 大于 |
| >= | 大于或等于 |
| < | 小于 |
| <= | 小于或等于 |
关系运算的结果
-
两个值的关系符合关系运算的预期时,关系运算的结果是整数1,否则为整数0。
-
printf("%d\n",5==3); 0
-
printf("%d\n",5>3); 1
-
printf("%d\n",5<=3); 0
优先级
-
所有的关系运算符的优先级都比算术运算的低,但比赋值运算的高。
-
算术运算>关系运算>赋值运算。
-
7>=3+4 结果是1
-
int r=a>0
-
-
判断是否相等的==和!=的优先级比其他的低,连续的关系运算是从左到右进行的。
-
5>3==6>4 结果是1
-
6>5>4 结果是0
-
a==b==6>0
-
/**/注释
-
延续数行的注释,要用多行注释的格式来写。多行注释有一对字符序列"/*"开始,以"米/"结束。
-
也可以用于一行内的注释。
-
单行注释也可用//
2.循环
循环解决的事
-
大于的判断,从高处往下走!
-
小于的判断,从低处往上走!
while循环
while(x>0)
{x/=10
n++;}
if是一次性的,而while是可以反复多次循环的。
循环体内要有改变条件的机会。
-
一个while循环的意思就是:当条件满足时,不断重复循环体内的语句。
-
循环执行之前判断是否继续循环,所以有可能循环一次也没有被执行。
-
条件成立是循环继续的条件。
do-while循环
-
不管三七二十一,先做循环内的句子。
-
在进入循环的时候不做检查,而是在执行完一轮循环体的代码之后,再来检查循环体的条件是否满足,如果满足则继续下一轮循环,不满足则结束循环。
-
while结尾要有分号!!!!
do
{
循环体语句
}
while(循环条件);
-
do-while:先执行循环,后判断条件。
-
do-while至少执行一遍循环,然后再判断条件。
-
while:先判断条件,后执行循环。
for循环
-
计算一个数n的阶乘
-
i=1是初始动作。
-
i<=n是循环继续的条件。
-
i++是循环每一轮要做的动作。
for(初始动作;循环条件;每轮的动作){循环体}
-
for中的每一个表达式都可以省略,分号不能省略!
-
for(;条件;)==while(条件)
for = 对于
-
for(count=10;count>0;count--) {循环体}
-
读成:"对于一开始的count=10,当count>0时,重复做循环体,每一轮循环在做完循环体内语句后,使得count--。"
-
if如果;while当;for对于。
小知识
-
做求和的程序时,记录结果的变量应该初始化为0,而做求积的变量时,记录结果的变量应该初始化为1.
for==while
for(int i=1;i<=n;i++){
fact*=i;
}
==(等于)
int i=1;
while(i<=n){
fact*=i;
i++
}
tips for loops(循环)
-
如果有固定次数,用for
-
如果必须执行一次,用do-while。
-
其他情况用while。
题目
1.时间换算
题目内容:
UTC是世界协调时,BJT是北京时间,世界时间与北京时间相差8小时,UTC时间相当于BJT减去8。现在,你的程序要读入一个整数,表示BJT的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果小时不是0而分小于10分,需要保留十位上的0;如果小时是0而分小于10分的,则不需要保留十位上的0。如1124表示11点24分,而905表示9点5分,36表示0点36分,7表示0点7分。
有效的输入范围是0到2359,即你的程序不可能从测试服务器读到0到2359以外的输入数据。
你的程序要输出这个时间对应的UTC时间,输出的格式和输入的相同,即输出一个整数,表示UTC的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果小时不是0而分小于10分,需要保留十位上的0;如果小时是0而分小于10分的,则不需要保留十位上的0。
提醒:要小心跨日的换算。
输入格式:
一个整数,表示BJT的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果小时不是0而分小于10分,需要保留十位上的0;如果小时是0而分小于10分的,则不需要保留十位上的0。
输出格式:
一个整数,表示UTC的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果小时不是0而分小于10分,需要保留十位上的0;如果小时是0而分小于10分的,则不需要保留十位上的0。
输入样例:
803
输出样例:
3
代码如下:
2.分队列
题目内容:
班级第一次列队,通常老师会让同学按身高排成一列,然后1、2报数,喊到1的同学向前一 步,就这样,队伍就变成两列了。假设现在一个班级有n个同学,并且他们已经按身高排成 了一列,同学按身高从1到n编号,你能告诉我最后哪些编号的同学站在了第一列么?
输入格式:
输入一个正整数n,表示班级的人数。
输出格式:
按顺序输出所有在第一列的同学对应的编号,每两个编号之间用一个空格隔开,最后一个编号后面没有空格。
输入样例:
11
输出样例:
1 3 5 7 9 11

浙公网安备 33010602011771号