萌新求助
#include<stdio.h>int main()
{
char ch;
printf("请输入一个字符:");
scanf("%c",&ch);
if(ch>='A'&&ch<='Z')
{
ch=ch+32;
printf("%c\n",ch);
}
if(ch>='a'&&ch<='z')
{
ch=ch-32;
printf("%c\n",ch);
}
return 0;
}
萌新一枚
为什么这个输入:A之后
会输出:a
A
第二个if不是不在范围内吗不应该只输出a吗 你输入A后,A的值是65满足第一个表达式,执行第一个if后为65+32=97等于a,这题是大小写转换。 梦雨 发表于 2021-12-6 11:26
你输入A后,A的值是65满足第一个表达式,执行第一个if后为65+32=97等于a,这题是大小写转换。
你把第二个if改成else就行了 这个是不是在执行完第一个if语句后,ch的值变成了a,又顺序执行了第二个? 梦雨 发表于 2021-12-6 11:27
你把第二个if改成else就行了
为什么改成else就可以了,而我这些写,输入A就会输出a A。 因为你这个是先第一个if判断完后,到第二个if并再次判断
而if else是第一个if如果条件为真,就不进行else的判断,要if的条件为假,才会进行else判断
页:
[1]