3 回答
TA贡献1893条经验 获得超10个赞
第一个问题,遇到小写字母的时候,你转换成了大写字母,然后往下执行,又将这个大写字母换成了小写字母,改成如下样式,即可解决问题
if(c<='z'&&c>='a')
c=c-'a'+'A';
else if(c<='Z'&&c>='A')
c=c-'A'+'a';
第二个问题,a=10,b=6
分支1:if(a>=10) break;
分支2:if(a%2==1)
{ a+=5;
continue;
}
分支3:a-=3;
首先a=1,b=1
进行一次循环,执行分支2,a=6,b=2
进行一次循环,执行分支3,a=3,b=3
进行一次循环,执行分支2,a=8,b=4
进行一次循环,执行分支3,a=5,b=5
进行一次循环,执行分支2,a=10,b=6
进行一次循环,执行分支1,跳出循环
TA贡献1830条经验 获得超9个赞
第一个:
if(c<='z'&&c>='a') // 这里是将小写转化为大写,比如输入b,那么执行完这个判断语句后为:B
c=c-'a'+'A';
if(c<='Z'&&c>='A') // 这里是将大写转化为小写,由于c=‘B’,所以转化后为:b。
c=c-'A'+'a';
所以最终结果为b。
第二个if前面增加else 的话,就可以实现大小写转换。
第二个:a=10,b=6
for(b=1,a=1;b<=50;b++)
{
if(a>=10)
break;
if(a%2==1)
{ a+=5;
continue;
}
a-=3;
}
第一次循环:
a=1,b=1,满足条件if(a%2==1),所以a+=5;此时a=6,b=1;continue;继续下次循环。
第二次循环:
a=6,b=2,未满足条件if(a%2==1),所以a-=3;此时a=3,b=2;继续下次循环。
第三次循环:
a=3,b=3,满足条件if(a%2==1),所以a+=5;此时a=8,b=3;continue;继续下次循环。
第四次循环:
a=8,b=4,未满足条件if(a%2==1),所以a-=3;此时a=5,b=4;继续下次循环。
第五次循环:
a=5,b=5,满足条件if(a%2==1),所以a+=5;此时a=10,b=5;continue;继续下次循环。
第六次循环:
a=10,b=6,满足条件if(a>=10) break;,所以退出循环。
TA贡献1966条经验 获得超4个赞
第一题要在第二个if前加else。现在转成大写后,又转成小写了。
第二题是这样:
a=1,b=1
a=6,b=2
a=3,b=3
a=8,b=4
a=5,b=5
a=10,b=6 (最后结果)
- 3 回答
- 0 关注
- 309 浏览
添加回答
举报