#输入非字母运行结果多处一位非字母字符
#include
char ch;
printf("Enter a character:");
scanf("%c",&ch);
if(ch>='A'&&ch<='Z'){
ch=ch+32;
else if(ch>='a'&&ch<='z')
ch=ch-32;
else
printf("%c is not a letter",ch);
printf("%c",ch);
return 0;
}
非字母时,两个printf都执行了
#include<stdio.h> int main(){
char ch;
printf("Enter a character:");
scanf("%c",&ch);
if(ch>='A'&&ch<='Z')
printf("%c",ch+32);
else if(ch>='a'&&ch<='z')
printf("%c",ch-32);
else
printf("%c is not a letter",ch);
return 0;
}
把最后那个printf("%c",ch); 语句移到if和else if分支就可以了,多出来的一个非字母字符就是这个打印出来的。修改如下:
#include<stdio.h>
int main(){
char ch;
printf("Enter a character:");
scanf("%c",&ch);
if(ch>='A'&&ch<='Z'){
ch=ch+32;
printf("%c",ch);
}
else if(ch>='a'&&ch<='z'){
ch=ch-32;
printf("%c",ch);
}
else
printf("%c is not a letter",ch);
return 0;
}
#include<stdio.h>
int main()
{
char ch;
printf("Enter a character:");
scanf("%c", &ch);
if(ch>='A'&&ch<='Z')
{
ch = ch + 32;
}
else if(ch>='a'&&ch<='z')
{
ch=ch-32;
}
else{
printf("%c is not a letter",ch);
return 0;
}
printf("%c",ch);
return 0;
}