C语言中if条件语句else省略问题
如题:下列程序运行时,若输入labcedf2df<回车>输出结果为()#include<stdio.h>main(){chara=0,ch;while((ch=getch...
如题:
下列程序运行时,若输入labcedf2df<回车>输出结果为()
#include <stdio.h>
main()
{ char a=0,ch;
while((ch=getch())!='\n')
{ if(a%2!=0&&(ch>='a'&&ch<='z')) ch=ch-'a'+'A';
a++; putchar(ch);
}
printf("\n");
}
我问下是不是在a++前面省略了一个else 展开
下列程序运行时,若输入labcedf2df<回车>输出结果为()
#include <stdio.h>
main()
{ char a=0,ch;
while((ch=getch())!='\n')
{ if(a%2!=0&&(ch>='a'&&ch<='z')) ch=ch-'a'+'A';
a++; putchar(ch);
}
printf("\n");
}
我问下是不是在a++前面省略了一个else 展开
展开全部
输出结果:
lAbCeDf2dF。
----
这个程序的功能是扫描输入的字符,如果是小写字母且输入字符顺序为第偶数个,则转换为大写,最后输出。
a++是用于字符计数用的。a++之前没有省略else。(C++的关键字不能随便被省略,像if、else这些控制语句的关键字更不可能省略。)
if(a%2!=0&&(ch>='a'&&ch<='z')) ch=ch-'a'+'A';是单独的if语句,没有else分支判断,如果条件不满足则什么也不做。不管它的条件是否满足,都和下面的a++;等语句无关。
----
[原创回答团]
lAbCeDf2dF。
----
这个程序的功能是扫描输入的字符,如果是小写字母且输入字符顺序为第偶数个,则转换为大写,最后输出。
a++是用于字符计数用的。a++之前没有省略else。(C++的关键字不能随便被省略,像if、else这些控制语句的关键字更不可能省略。)
if(a%2!=0&&(ch>='a'&&ch<='z')) ch=ch-'a'+'A';是单独的if语句,没有else分支判断,如果条件不满足则什么也不做。不管它的条件是否满足,都和下面的a++;等语句无关。
----
[原创回答团]
参考资料: 原创
展开全部
在C语言中正常格式是if(条件){结果}else{结果}.这是为了严谨才这么做的,不过有时为了方便else是可以省略不写的。
下面举一个简单例子:
#include <stdio.h>
int main()
{
int a,b;
a=4;
b=5;
if(a>b)
{
printf("%d",a);
}
else
{
printf("%d",b);
}
return 0;
}
若把else去掉的话,结果一样。但是如果是初学者,还是严谨一些、
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没有省略,这段代码是正确的
if语句可以不用要else分支
if语句可以不用要else分支
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
代码正确:
#include <stdio.h>
#include<string.h>
main()
{
char a=0,ch;
while((ch=getchar())!='\n')
{
if(a%2!=0&&(ch>='a'&&ch<='z')) ch=ch-'a'+'A';
a++; putchar(ch);
}
printf("\n");
}
#include <stdio.h>
#include<string.h>
main()
{
char a=0,ch;
while((ch=getchar())!='\n')
{
if(a%2!=0&&(ch>='a'&&ch<='z')) ch=ch-'a'+'A';
a++; putchar(ch);
}
printf("\n");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询