(ᗜ ˰ ᗜ) 2023-05-29 07:37 采纳率: 66.7%
浏览 19
已结题

关于分支结构的c语言练习

输入两个字符,若这两个字符之差是偶数,则输出它们的后继字符,否则输出它们的前驱字符。这里的前驱后继是指输入的两个字符中,较小字符前面的和较大字符后面的那个字符。输出时,若前驱字符或后继字符超过“可印刷字符”的范围,则以整数格式输出,并输出该字符没有可印刷形式的信息。用VC2010工具完成设计、编辑、编译和调式工作。

  • 写回答

3条回答 默认 最新

  • a5156520 2023-05-29 11:52
    关注

    我的思路是:

    1、从输入获取两个字符;

    2、将字符较小的存入第一个变量,字符较大的存入第二个变量;

    3、判断两个字符之差,如果是偶数,并且后继字符是打印字符,则输出较大字符的后继字符,如果不是可打印字符,则输出后继字符的整数形式,并输出其为无可打印形式;

    4、如果不是偶数,并且前驱字符是可打印字符,则输出较小字符的前驱字符,如果不是打印字符,则输出前驱字符的整数形式,并输出其无可打印形式。

    代码如下:

    参考链接:


    
    #include <stdio.h>
    
    int main(void){
        
        int ch1,ch2;
        printf("请输入两个字符:\n");
        scanf("%c%c",&ch1,&ch2);  // 从输入获取两个字符 
    //    ch1=129;  
    //    ch2=128;
        
        // 将较小字符放置到ch1中,将较大字符放置到ch2中 
        if(ch1>ch2){
            char temp = ch1;
            ch1=ch2;
            ch2=temp;
        }
        
        if((ch1-ch2)%2==0){  // 如果字符之差是偶数 
            // prhttps://www.cnblogs.com/hyserendipity/p/7376103.html
            // http://ascii.wjccx.com/
            if(ch2>=31&&ch2<126){  // 并且后继字符是可打印字符,则输出后继字符 
                printf("%c",ch2+1);
            }else{  // 如果后继字符不是可打印字符,则输出其整数形式,并打印没有可打印形式 
                printf("%d, 该字符没有可印刷形式。\n",ch2+1);
            }
        }else{   // 如果字符之差不是偶数 
            if(ch1>=33&&ch1<=127){  // 并且前置字符是可打印字符,则输出前置字符 
                printf("%c",ch1-1);
            }else{   // 如果前驱不是可打印字符,则输出整数形式 ,并打印没有可打印形式 
                printf("%d, 该字符没有可印刷形式。\n",ch1-1);
            }
        }
        
        return 0;
    } 
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 6月15日
  • 已采纳回答 6月7日
  • 创建了问题 5月29日

悬赏问题

  • ¥15 matlab数据降噪处理,提高数据的可信度,确保峰值信号的不损失?
  • ¥15 怎么看我在bios每次修改的日志
  • ¥15 python+mysql图书管理系统
  • ¥15 Questasim Error: (vcom-13)
  • ¥15 船舶旋回实验matlab
  • ¥30 SQL 数组,游标,递归覆盖原值
  • ¥15 为什么我的数据接收的那么慢呀有没有完整的 hal 库并 代码呀有的话能不能发我一份并且我用 printf 函数显示处理之后的数据,用 debug 就不能运行了呢
  • ¥20 gitlab 中文路径,无法下载
  • ¥15 用动态规划算法均分纸牌
  • ¥30 udp socket,bind 0.0.0.0 ,如何自动选取用户访问的服务器IP来回复数据