答疑解惑必采纳 2021-07-22 09:15 采纳率: 91.3%
浏览 97
已采纳

c语言问题,求具体的方法,思路

汤姆的密码一次可以写两个字母。给定一些密文(用汤姆的密码加密的文本),取其前两个字母。明文(未加密文本)的第一个字母是这两个加密字母的ascii值较小的字母。例如,密文的前两个字母为“GD”,则明文的第一个字母为“D”。为了解释这段代码,下图演示了代码“CZuOMUPP1i5fg112”是如何被解密为“COMP1511”的。在每一对字母中,ascii值较低的那一个就是明文的一部分。
您不应该假定会有偶数个输入。如果字符个数为奇数,则忽略最后一个字符。您可以被指定任何可打印的ascii字符作为输入(小写字母、大写字母、换行符、符号等)。
您的程序应该总是在输出的最后打印一个换行符。
这个练习很难用fgets来解决。您应该使用getchar解决这个问题。

img

img

  • 写回答

2条回答 默认 最新

  • CSDN专家-link 2021-07-22 09:17
    关注

    必须要求偶数个字符?没对字符中取ASCII码小的作为结果?

    #include <stdio.h>
    #include <stdlib.h>
    void main()
    {
        char a[1000] = {0};
        int count = 0;
        printf("请输入加密串:");
        char c;
        while((c = getchar()) != EOF)
        {
          a[count++] = c;
        //  putchar(c);
        }
        char *p = a;
        while(*p != 0 && *(p+1)  != 0)
        {
            if(*p <= *(p+1))
                printf("%c",*p);
            else
                printf("%c",*(p+1));
            p+=2;
        }
        printf("\n");
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已采纳回答 7月22日
  • 修改了问题 7月22日
  • 修改了问题 7月22日
  • 创建了问题 7月22日

悬赏问题

  • ¥15 表达式必须是可修改的左值
  • ¥15 如何绘制动力学系统的相图
  • ¥15 对接wps接口实现获取元数据
  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)
  • ¥50 mac mini外接显示器 画质字体模糊
  • ¥15 TLS1.2协议通信解密
  • ¥40 图书信息管理系统程序编写
  • ¥20 Qcustomplot缩小曲线形状问题