为什么这个程序不能打印大写字母的正确输出? #包括 int main(){ 字符a; printf(“输入字母”); scanf(“%c”和“&a”); 如果(a>='a'| | a='a'| | a

为什么这个程序不能打印大写字母的正确输出? #包括 int main(){ 字符a; printf(“输入字母”); scanf(“%c”和“&a”); 如果(a>='a'| | a='a'| | a,c,ascii,C,Ascii,您应该将您的条件更改为 #include<stdio.h> int main() { char a; printf("enter a letter"); scanf("%c", & a); if (a >= 'A' || a <= 'Z') { a = a + 32; } else if (a >= 'a' || a <= 'z') { a = a - 32; } printf("%c", a); re

您应该将您的条件更改为

#include<stdio.h>

int main() {
  char a;
  printf("enter a letter");
  scanf("%c", & a);
  if (a >= 'A' || a <= 'Z') {
    a = a + 32;
  } else if (a >= 'a' || a <= 'z') {
    a = a - 32;
  }
  printf("%c", a);
  return 0;
}

if(a>='a'&&a='a'&&a='a'| |……)
将消耗大写或小写字母的所有输入。

如果要翻转大小写,并且输入了大写字母,第二个“If”将由于“else”而被忽略。

让我们从字母表的开头开始。大写字母从65开始表示
A
到97表示
Z
,小写字母开始对于
a
为97,对于
z
为122

现在,使用您的条件
如果(a>='a'| | a='a'
为真,它将短路并进入条件的主体

要检查字母的范围,应将其更改为:

if(a>='A' && a<='Z'){
    a=a+32;
}
else if(a>='a' && a<='z'){
    a=a-32;
} 

如果(a>='a'&&a='a'&&a='a'
a而不是|,您应该使用&&。这将限制您放置的条件。下面显示的代码片段:

if(a>='A' && a<='Z'){
    a=a+32;
}
else if(a>='a' && a<='z'){
    a=a-32;
} 
#包括
int main(){
字符a;
printf(“输入字母表”);
scanf(“%c”和“&a”);

如果(a>='a'&&a='a'&&a你期望的输出是什么?
输入字母表
…不……这是字母表。所有26个组合都是字母表。
tolower
toupper
?或
+=
-=/code>?无论如何,请在询问之前先学习基本的逻辑运算符。兄弟,你是对的,但是你能再解释一下吗
#include<stdio.h>
int main() {
  char a;
  printf("enter the alphabet");
  scanf("%c", & a);
  if (a >= 'A' && a <= 'Z') {
     a = a + 32;
  } 
   else if (a >= 'a' && a <= 'z') {
     a = a - 32;
  }
  printf("%c", a);
  return 0;
}