鱼C论坛

 找回密码
 立即注册
查看: 2447|回复: 6

小甲鱼视频作业,密文。

[复制链接]
发表于 2013-11-20 17:28:02 | 显示全部楼层 |阅读模式
25鱼币
本帖最后由 18326638710 于 2013-11-20 22:17 编辑

这个作业 ,我只写了把原文改成密文,,,但把密文改成原文, 我就不会了。是在一个代码源文件里写的。还要要求输入密码后再把密文改成原文。。。求解。。。。。附上我写把原文改成
#include <stdio.h> /*密文*/

void main()
{
char a[100]; int n;
for (n=0; n<=100; ++n)
{
scanf("%c",&a[n]);
if ( a[n] <= 90 && a[n] >= 65 )
{
if( a[n] >= 57 )
{
printf("%c", a[n]-22);
}
else {
printf("%c", a[n]+4);
}
}
else if ( a[n] >= 97 && a[n] <= 122)
{
if ( a[n] >= 119 )
{
printf("%c", a[n] - 22 );
}else {
printf ("%c", a[n]+4);
}
}
if( a[n]!='\n' )
{
printf("input error!");
}
} 
}
密文的代码。。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-11-20 17:28:49 | 显示全部楼层
只写一个代码,不要写两个代码。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-11-21 12:01:28 | 显示全部楼层
求解啊。。。。大神。。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-11-22 00:05:16 | 显示全部楼层
代码中11行 楼主笔误了吧,应该是  if(a[n]>=87)

解密代码将源代码复制 逆推就可以了,比如你加密方式是后移4位位移,那么解密就是前移4的位移!

以大写字母为例就是
     if ( a[n] <= 90 && a[n] >= 65 )
                {
                        if( a[n] <= 68)
                        {
                                printf("%c", a[n]+22);
                        }
                        else {
                                        printf("%c", a[n]-4);
                                }
                }
改三处就oK;
小写字母的 逆运算同上。

另外,lz的最后一句错误测试,应该是想输入中含有非字母的就报错,但是 位子不太对,放到你的位子,会出现很多错误信息,应该使用  goto 命令完成结束跳转更好!   
代码如下:  
        else if( a[n]!='\n' ) goto error;
        }
error: printf("input error!");
}             最后的if 改为else if错误就直接结束程序的输出,  不知道我想的是否是你想的效果!
先就到这吧,希望对楼主有所帮助! 还有提醒楼主一点就是,写程序的时候尽量 具有可读性,不要全部从第一位开始,如果是因为黏贴的问题,请自动忽略!!! {:1_1:}

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-11-22 19:22:41 | 显示全部楼层
不懂啊   再研究研究家
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-11-23 00:39:39 | 显示全部楼层

关键要有一个触发点,还要输入密码后再解密。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-11-23 07:20:16 | 显示全部楼层
18326638710 发表于 2013-11-23 00:39
关键要有一个触发点,还要输入密码后再解密。。

方法一是直接读取文件 解密,一种就是 直接输入解密!如果要读取前面还要加入文件创建和保存输出!这个 我不会! 直接输入的话,和你写的代码一样!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 15:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表