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

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;
}
}

阿波罗的战车
浏览 311回答 3
3回答

白猪掌柜的

第一个问题,遇到小写字母的时候,你转换成了大写字母,然后往下执行,又将这个大写字母换成了小写字母,改成如下样式,即可解决问题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,跳出循环

慕标琳琳

第一个:if(c<='z'&&c>='a') // 这里是将小写转化为大写,比如输入b,那么执行完这个判断语句后为:Bc=c-'a'+'A';if(c<='Z'&&c>='A') // 这里是将大写转化为小写,由于c=‘B’,所以转化后为:b。c=c-'A'+'a';所以最终结果为b。第二个if前面增加else 的话,就可以实现大小写转换。第二个:a=10,b=6for(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;,所以退出循环。

慕标5832272

第一题要在第二个if前加else。现在转成大写后,又转成小写了。第二题是这样:a=1,b=1a=6,b=2a=3,b=3a=8,b=4a=5,b=5a=10,b=6 (最后结果)
打开App,查看更多内容
随时随地看视频慕课网APP