从容_ 2015-10-11 13:53 采纳率: 50%
浏览 1688
已采纳

关于if语句和switch语句 不知道怎么打 麻烦大家解一下了,万分感激!

#include
void main()
double a;
printf("%f",a);
scanf("%f",&a);
switch(a)
{
case 'a':printf("%f",a);
break;

    default:printf("输入的字符不是字母\n");
}

}
显示错误,不知道怎么打下去了 后面还有但是不知道怎么打了,求解!
题目如下: 输入一个字符,判断字符必须为字母,为其它字符则输出“输入字符不是字母”
然后输入的字符改为当前字符的下一个字符,例:c改为d,Z改为A。注意大小写不能改变。

  • 写回答

4条回答 默认 最新

  • iswoit_2_you 2015-10-11 14:19
    关注
    //char类型在c++里存的是ascii码,是int型,能直接用+1来获取下一个数
     #include <stdio.h>
    
    void main()
    {
        char ch = getchar();    //读字符
    
        if (ch >= 'A'&&ch <= 'Z')   //A-Z
        {
            ch = (ch - 'A' + 1) % 26 + 'A';     //ch-'A'代表这个数距离字母A的偏移量;+1代表字母+1;%26代表26个字母循环,也就是Z+1=A;最后计算出的偏移值+A就是实际的值
            printf("%c\n", ch);
        }
        else if (ch >= 'a'&&ch <= 'z')  //a-z
        {
            ch = (ch - 'a' + 1) % 26 + 'a';     //同理
            printf("%c\n", ch);
        }
        else    //其它
        {
            printf("输入的字符不是字母\n");
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料