【项目1-M$pszi$y是嘛意思?】
背景:小明让同学传纸条给小丽。小丽接到会心一笑,大家却不知所云。纸条上写着M$pszi$y,两人暗中约定是,真实字符为实际字符前面的第4个!M$pszi$y是神马意思?推算一下,或从ASCII码表中查一下,自然是I love u。
(1)小明请你写一个程序,在给小丽写情书时,再不用费功夫自己“翻译”,原信中每一个字符加密为其后的第4个字符。例,输入I love u,输出M$pszi$y。
[参考解答]
#include<stdio.h> int main() { char s[80], t[80]; int i; gets(s); for(i=0; s[i]!='\0'; i++) { t[i] = s[i]+4; } t[i] = '\0'; //此时i为? printf("%s\n", t); return 0; }
(2)小丽请你写一个程序,在看小明的情书时,让程序帮着“解密”。因为有同学知道了他们俩人的“加密”手段,决定纸条由人传,加密数字(1-9)用两人约好的手势传,所以解密时,需要将加密数字作为程序输入。例,输入M$pszi$y(回车)4,输出I love u
[参考解答]
#include<stdio.h> int main() { char s[80], t[80]; int i, n; printf("输入待解密句子:"); gets(s); printf("输入加密数字:"); scanf("%d", &n); char *pt = t; for(i=0; *(s+i)!='\0'; i++,pt++) { *pt = s[i]-n; } *pt = '\0'; printf("%s\n", t); return 0; }
(3)小刚常帮着传纸条,想知道俩人的秘密,但不知道加密数字,于是写了一个程序,可以列出所有可能的情况。例,输入M$pszi$y,多行输出中必然有一行是I love u。你就是小刚,写出这个程序来吧。
[参考解答]
#include<stdio.h> int main() { char s[80], t[80], *pt; int i, n; printf("输入待解密句子:"); gets(s); for(n=1; n<9; n++) { pt = t; for(i=0; *(s+i)!='\0'; i++,pt++) { *pt = s[i]-n; } *pt = '\0'; printf("%s\n", t); } return 0; }
时间: 2024-10-14 20:43:43