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

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

我的思路是:

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

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

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

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

代码如下:

参考链接:


ASCII码对照表-完整ASCII码表-我就查查询 ASCII码表包含有ASCII打印字符对照表、ASCII控制字符对照表以及ASCII扩展字符对照表。 http://ascii.wjccx.com/


#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

#include <stdio.h>  
#include <ctype.h>

int main() {  
    char c1, c2;  
    printf("请输入两个字符:");  
    scanf("%c%c", &c1, &c2);

    if ((c1 - c2) % 2) {  
        printf("%c", c2 > c1 ? : c2 + 1 : c1 + 1);  
    } else {  
        printf("%c", c2 > c1 : c1 - 1 : c2 - 1);  
    }

    return 0;  
}