回 帖 发 新 帖 刷新版面

主题:紧急求助

修改下列程序
输入一个字母后,输出该字母的前序字母,该字母,该字母的后序字母 如输入a 则输出zab
输入 Z则输出YZA
#include <stdio.h>
main()
{  char ch,c1,c2;
 printf("Enter a character:");
    ch=getchar();
    if((ch>='a')||(ch<='z'))     /*如果是小写字母,则转换成大写字母*/
        ch-=32;
    c1=ch-1;
    c2=ch+1;
    if(ch='A') c1=ch+25;
    else if(ch='Z') c2=ch-25;
    putchar(c1);
    putchar(ch);
    putchar(c2);
    putchar('\n');
}[size=3][/size]

回复列表 (共6个回复)

沙发

楼主将 == 写成了赋值运算符 ‘=’结果每次运行后ch都变成了'A'


char ch,c1,c2;
 printf("Enter a character:");
    ch=getchar();
    if((ch>='a')||(ch<='z'))     /*如果是小写字母,则转换成大写字母*/
    {
        ch -= 32;
    }
    c1=ch-1;
    c2=ch+1;
    if(ch =='A') //'=' => '=='
    {
        c1=ch+25;
    }
    else if(ch == 'Z') //'=' => '=='
    {
        c2=ch-25;
    }
    putchar(c1);
    putchar(ch);
    putchar(c2);
    putchar('\n');

板凳

建议:最好反过来写
ch == 'Z' => 'Z' == ch
这样,即使错写成'=' ,该错误在编译时就能发现。

3 楼

判断出错了

4 楼

兄弟,||改为&&,=赋值改为比较==,就对了!!

5 楼

xeixie

6 楼

深圳市华信群英科技有限公司与知名通信软件公司正式签订定向输送人才的合作协议
针对想进入IT软件行业的有志人士提供专业的企业内训
实训课程采用“2+3”分段教学模式,分为2个月理论强化和3个月项目实训两个阶段
实训前就签订就业安置协议,岗前实训后入职
不仅学费优惠而且是企业定向培训定向招聘,百分百保证就业
有意向请登录www.szctt.com,或加QQ:1179397962做详细咨询

我来回复

您尚未登录,请登录后再回复。点此登录或注册