任务和代码:小丽请你写一个程序,在看小明的情书时,让程序帮着“解密”。因为有同学知道了他们俩人的“加密”手段,决定纸条由人传,加密数字(1-9)用两人约好的手势传,所以解密时,需要将加密数字作为程序输入。例,输入M$pszi$y(回车)4,输出I love
/*
文件名:main.c
作者:小风景
完成日期:2016.7.7
问题描述:小丽请你写一个程序,在看小明的情书时,让程序帮着“解密”。因为有同学知道了他们俩人的“加密”手段,决定纸条由人传,加密数字(1-9)用两人约好的手势传,所以解密时,需要将加密数字作为程序输入。例,输入M$pszi$y(回车)4,输出I love
程序输出:
*/
#include <stdio.h>
#include <stdlib.h>
void encrypt(char secret[],int n);
void decryption(char secret[]);
int main()
{
char secret[100] = {0};
int n = 0;
printf("请输入要解密的字符:");
gets(secret);
printf("请输入解密的数字");
scanf("%d",&n);
encrypt(secret,n);
return 0;
}
void encrypt(char secret[],int n)
{
switch(n)
{
case 1:
case 2:
case 3:
case 5:
case 6:
case 7:
case 8:
case 9:
printf("解密数字错误!\n");
break;
case 4:
decryption(secret);
break;
default:
printf("error!");
exit(1);
}
}
void decryption(char secret[])
{
int i = 0;
printf("解密后的字符为:");
while(secret[i] !='\0')
{
secret[i] -= 4;
printf("%c",secret[i]);
i++;
}
}
程序运行结果:
总结:这个程序写的和题目的意思有些区别,应该为要解密的字符减去解密的数字得到解密后的字符,而不是选择一个分支,得到正确的结果。