零的执行人 发表于 2020-6-8 14:35:32

C语言


#include "stdio.h"
int main()
{
    char ch;
    char s;
    int i=0;
    while((ch=getchar()!='\n'))
    {
      s=ch;
      i++;
    }
    s='\n';
    i=0;
    while(s!='\n')
    {
      if(s>='A'&&s<='Z')
      {
            s='A'+'Z'-s;
      }
      i++;
    }
    puts(s);
}


请问这段代码哪错了?


本题要求编写程序,将给定字符串中的大写英文字母按以下对应规则替换:
原字母 -对应字母
   A    -    Z
   B    -    Y
         ...
   Z    -    A


输入格式:
输入在一行中给出一个不超过80个字符、并以回车结束的字符串。
输出格式:
输出在一行中给出替换完成后的字符串。
输入样例:
Only the 11 CAPItaL LeTtERS are replaced.

输出样例:
Lnly the 11 XZKRtaO OeGtVIH are replaced.

lei1996 发表于 2020-6-8 15:48:33

while((ch=getchar()!='\n'))
这行给ch=getchar()加上括号
s='\n';和 while(s!='\n')把'\n'换位'\0'

零的执行人 发表于 2020-6-8 16:07:32

lei1996 发表于 2020-6-8 15:48
while((ch=getchar()!='\n'))
这行给ch=getchar()加上括号
s='\n';和 while(s!='\n')把'\n'换位'\0'

明白了明白了,我还以为又是因为get函数有问题,,,十分感谢回答!!!
页: [1]
查看完整版本: C语言