输入两个字符,若这两个字符之差是偶数,则输出它们的后继字符,否则输出它们的前驱字符。这里的前驱后继是指输入的两个字符中,较小字符前面的和较大字符后面的那个字符。输出时,若前驱字符或后继字符超过“可印刷字符”的范围,则以整数格式输出,并输出该字符没有可印刷形式的信息。用VC2010工具完成设计、编辑、编译和调式工作。
3条回答 默认 最新
- a5156520 2023-05-29 11:52关注
我的思路是:
1、从输入获取两个字符;
2、将字符较小的存入第一个变量,字符较大的存入第二个变量;
3、判断两个字符之差,如果是偶数,并且后继字符是打印字符,则输出较大字符的后继字符,如果不是可打印字符,则输出后继字符的整数形式,并输出其为无可打印形式;
4、如果不是偶数,并且前驱字符是可打印字符,则输出较小字符的前驱字符,如果不是打印字符,则输出前驱字符的整数形式,并输出其无可打印形式。
代码如下:
参考链接:https://www.cnblogs.com/hyserendipity/p/7376103.htmlASCII码对照表-完整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; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥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来回复数据