原来是我错付了 发表于 2022-10-26 16:51:08

输出的为什么不对

#include<stdio.h>
int main()
{
                int i;
                char ch;
                for(i=0;i<4;i++)
                        {
                        scanf("%c",&ch);
                        }
                i=0;
                while(ch!='\n')
                        {
               
                        if(ch>='A'&&ch<='Z') printf("%c",ch+32);
                        else if(ch>='a'&&ch<='z')printf("%c",ch-32);
                        else if(ch>='0'&&ch<='9')printf("%c",'*');
                        else printf("%c",'@');
                        i++;
                  }                                                   
                return 0;
               
}

jackz007 发表于 2022-10-26 17:08:06

本帖最后由 jackz007 于 2022-10-26 17:10 编辑

#include<stdio.h>
int main()
{
      char ch                                                      ;
      while((ch = getchar()) !='\n') {
                if(ch >= 'A' && ch <= 'Z') printf("%c" , ch + 32)      ;
                else if(ch >= 'a' && ch <= 'z') printf("%c" , ch - 32) ;
                else if(ch >= '0' && ch <= '9') printf("*")            ;
                else printf("@")                                       ;
      }
      putchar('\n')                                                ;
}
      编译运行实况:
D:\\C>g++ -o x x.c

D:\\C>x
ABCDEFG12345!@#$%^&*()
abcdefg*****@@@@@@@@@@

D:\\C>

kishere 发表于 2022-10-26 17:13:38

你想输入几个字符?友情是你这程序只能读取3个字符加一个回车,输4个字符加回车会有问题

桃花飞舞 发表于 2022-10-26 23:40:00

感觉代码判断里面是没有问题了,是不是因为'\n'也是字符,你可以把while(ch!='\n') 改为while( ch != '\0' )试下 '\0'没有对应的字符
页: [1]
查看完整版本: 输出的为什么不对