真萌新.. 发表于 2021-3-30 19:08:57

C语言编程课后作业,在PTA平台总是编译错误请教

刚学了if语句和分支结构,结果第一题就一直卡住了
题目是 :键盘输入一个英文字母,如果是大写字母,输出ASCII码,如果是小写字母输出对应的大写字母。
我的答案是:#include <stdio.h>
int main()
{
    char x;
    scanf("%c",&x);
    if(x>='a')
                x=x-32;
                printf("%c",x);
    else
                printf("%d",x);
}
但是这个运行不了,运行出一堆乱码
a.c: In function ‘main’:
a.c:6:5: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
   if(x>='a')
   ^~
a.c:8:3: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘if’
   printf("%c",x);
   ^~~~~~
a.c:9:5: error: ‘else’ without a previous ‘if’
   else
   ^~~~
a.c:5:5: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]
   scanf("%c",&x);
   ^~~~~~~~~~~~~~
请教一下我的错误出在了哪里,正确的这个程序应该怎么写,因为是刚学C语言还请写的简单一点{:5_96:}

ba21 发表于 2021-3-30 19:15:56

c 的代码块加 {}
int main()
{
    char x;
    scanf("%c",&x);
    if(x>='a')
        {
                x=x-32;
                printf("%c",x);
        }
    else
        {
                printf("%d",x);
        }
}

真萌新.. 发表于 2021-3-30 19:38:01

ba21 发表于 2021-3-30 19:15
c 的代码块加 {}
int main()
{


感谢指点,做对了{:5_106:}

真萌新.. 发表于 2021-3-30 19:42:56

ba21 发表于 2021-3-30 19:15
c 的代码块加 {}
int main()
{


还有我的大小写字母范围没有界定清楚,在你的指点下我改成了#include <stdio.h>
int main()
{
    char x;
    scanf("%c",&x);
    if(x>='a' &&x<='z')
      {
                x=x-32;
                printf("%c",x);
      }
    else
      {
                if(x>='A' &&x<='Z')
                printf("%d",x);
      }
}
现在已经答对了,感谢!
页: [1]
查看完整版本: C语言编程课后作业,在PTA平台总是编译错误请教