C语⾔for循环、if判断以及嵌套运⽤例题
在某⼀⿊夜司机碰伤⾏⼈后落荒⽽逃,经过警察的调查之后,有三个⽬击者。
甲说:车牌号的前两位相同;
⼄说:车牌号的后两位加起来等于六;
丙说:车牌号是⼀个四位数,并且能被⼆整除。
如果你是神探你能出这辆车吗?
思考:⼀看本题发现有四个条件,说明⼀定会⽤到判断语句,因为条件不少,极有可能⽤到if语句的嵌套;⼜因为是查题,数量很⼤,把这些数列出来肯定要⽤的循环语句,由此可知,for循环⾥嵌套if判断语句的嵌套。因为需要⼀个四位数,⽽且要知道每位数的数字,所以会⽤到以下⽅法。
看成⼀个四位数也就是从1000到9999;
1. 设四位数为i;
2. 求千位数字(车牌号第⼀位)a: a=i/1000(i除以1000取整);
3. 求百位数字(车牌号第⼆位)b: b=i/100%10(i除以100取整得出来的数在除以10取余) 或者 b=i%1000/100(i除以1000取余
得出来的数在除以100取整);
4. 求⼗位数字(车牌号第三位)c:c=i%100/10(i除以100取余得出来的数在除以10取整) 或者 c=i/10%10(i除以10取整得到的
数再除以10取余);
5. 求个位数字(车牌号第四位)d:d=i%10(i除以10取余);
参考代码:
#include<stdio.h>
void main(){
int a,b,c,d,i,e;
for(i=1000;i<=9999;i++){
a=i/1000;//第⼀位数
if语句的嵌套例子模板b=i/100%10;//第⼆位数
c=i%100/10;//第三位数
d=i%10;//第四位数
if(a==b){
e=c+d;
if(e==6){
if(i%2==0){
printf("%d\n",i);
}
}
}
}
}
运⾏结果: