为了账号安全,请及时绑定邮箱和手机立即绑定

请问执行完毕之后a和b的值分别是____和____具体怎么进行的?

请问执行完毕之后a和b的值分别是____和____具体怎么进行的?

阿波罗的战车 2022-05-31 15:11:04
1、#include<iostream>using namespace std;void main(){char c;cin>>c;if(c<='z'&&c>='a')c=c-'a'+'A';if(c<='Z'&&c>='A')c=c-'A'+'a';cout<<c<<endl;}为什么输入“b”还是输出“b”呢?2、void main(void){int a,b;for(b=1,a=1;b<=50;b++){if(a>=10) break;if(a%2==1){ a+=5;continue;}a-=3;}}
查看完整描述

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,跳出循环


查看完整回答
反对 回复 2022-06-06
?
慕标琳琳

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;,所以退出循环。

查看完整回答
反对 回复 2022-06-06
?
慕标5832272

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 (最后结果)


查看完整回答
反对 回复 2022-06-06
  • 3 回答
  • 0 关注
  • 309 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信