当前位置: 代码迷 >> C语言 >> 想了一晚上才想通的题目,考考同样初学的朋友。(高手莫笑)
  详细解决方案

想了一晚上才想通的题目,考考同样初学的朋友。(高手莫笑)

热度:205   发布时间:2005-04-29 04:15:00.0
想了一晚上才想通的题目,考考同样初学的朋友。(高手莫笑)
有一行密码电文:
Sldwb,uirvmw,evib szkkb fmwvihgzmwrmt veviblmv.R orpv gl ziirev zg x.yx-xm.mvg!

是按下面规律加密
A~Z  a~z
B~Y  b~y
C~X  c~x
`        `
`        `
`        `
即第一字母变成第26个字母,第二个字母变第25个,依次类推,非字母不变。要编程吧密码翻译回原文。

[此贴子已经被作者于2005-4-29 4:22:34编辑过]


搜索更多相关的解决方案: 考考  字母  初学  

----------------解决方案--------------------------------------------------------
前提是不用库函数吗??
这样也许行吧?我是新手,写的也不规范,大概就这个意思吧!
int small, larger;
char c;
c=getchar();
if(c>=65&&c<=90)c=90-(90-c+25);
else if(c>=97&&c<=122)c=122-(122-c+25);
puchar(c);
----------------解决方案--------------------------------------------------------
main()

{
char a;
while(a!='\n')
{
a=getchar();
if(a<=90&&a>=65)a=65+(90-a);
if(a>=97&&a<=122)a=97+(122-a);
putchar(a);}

}
----------------解决方案--------------------------------------------------------

//有一行密码电文: //Sldwb,uirvmw,evib szkkb fmwvihgzmwrmt veviblmv.R orpv gl ziirev zg x.yx-xm.mvg!

//是按下面规律加密 //A~Z a~z //B~Y b~y //C~X c~x //` ` //` ` //` ` //即第一字母变成第个26字母,第二个字母变第25个,依次类推,非字母不变。 //要编程吧密码翻译回原文。

#include <stdio.h> #include <ctype.h> #include <string.h> #include <stdlib.h>

#define MAXSIZE 100

static char string[MAXSIZE];

void encryption(); //加密 void translation();//解密

void encryption() { int length; int i; int sign; printf("please enter the text of a telegram.\n"); gets(string); length=strlen(string); for(i=0;i<length;i++) { sign=isupper(string[i]); if(sign!=0) string[i]='Z'-(string[i]-'A'); sign=islower(string[i]); if(sign!=0) string[i]='z'-(string[i]-'a'); } printf("the text of a telegram after encryption is as followings :\n"); puts(string); }

void translating() { int j; int sign; int length; length=strlen(string); for(j=0;j<length;j++) { sign=isupper(string[j]); if(sign!=0) string[j]='Z'-(string[j]-'A'); sign=islower(string[j]); if(sign!=0) string[j]='z'-(string[j]-'a'); } puts("the text of a telegram afte translation is as followings :"); puts(string); }

void main() { encryption(); translating(); }


----------------解决方案--------------------------------------------------------

这不是前两天刚做过的作业题吗? #include <stdio.h> #include <ctype.h> #include <conio.h>

#define UPPER_BASE 65 #define LOWER_BASE 97 #define BUFFER 256

int main() { char alpha[2][27]={{"ABCDEFGHIJKLMNOPQRSTUVWXYZ"}, {"abcdefghijklmnopqrstuvwxyz"}}; char ptrInfo[BUFFER]; register int i=0; puts("<Input a series information for encoding>"); gets(ptrInfo); puts("<The encoded information>"); while(ptrInfo[i]!='\0') { if(!isalpha((int)(ptrInfo[i]))) putchar((int)(ptrInfo[i])); else { if(isupper((int)(ptrInfo[i]))) putchar(alpha[0][26-((int)(ptrInfo[i])-UPPER_BASE)-1]); else if(islower((int)(ptrInfo[i]))) putchar(alpha[1][26-((int)(ptrInfo[i])-LOWER_BASE)-1]); } i++; } getch(); return 1; }


----------------解决方案--------------------------------------------------------
敢问这是初学者可以编的程序吗?
----------------解决方案--------------------------------------------------------
以下是引用weizheng在2005-4-29 20:04:43的发言: 敢问这是初学者可以编的程序吗?

是啊!!我们老师才教到数组,指针都还没有开始讲!!这是课后的练习题! 我自己想的如下: #include "Stdio.h" #include "Conio.h"

main() { int i=0; char a[200]; printf("input word:\n"); gets(a); while(a[i]!='\0') {if(a[i]>='A'&&a[i]<='Z') {a[i]=(2*'A'+25-a[i]); i++; } else if(a[i]>='a'&&a[i]<='z') {a[i]=('a'+26-(a[i]-'a')-1); i++; } else i++; } a[i]='\0'; for(i=0;a[i]!='\0';i++) printf("%c",a[i]); getch(); } 程序在WIN-TC下编译通过。 不知道上面的几位朋友可以成功通过程序翻译密文: “Sldwb,uirvmw,evib szkkb fmwvihgzmwrmt veviblmv.R orpv gl ziirev zg x.yx-xm.mvg!” 吗?

[此贴子已经被作者于2005-4-29 20:55:15编辑过]


----------------解决方案--------------------------------------------------------
你们是什么大学呀 比我们么强多了
----------------解决方案--------------------------------------------------------
也可以是这样:                                                            
#include "string.h"
main()
{
char a[100], *dw=a;
gets(dw);
while(*dw!='\0')
  {
   if(*dw&gt;='a' &amp;&amp; *dw&lt;='z')
    *dw='z'-(*dw-'a');
   if(*dw&gt;='A' &amp;&amp; *dw&lt;='Z')
    *dw='Z'-(*dw-'A');
   dw++;
   }
  dw=a;
  printf("%s",dw);
  printf("\n");
  }
----------------解决方案--------------------------------------------------------
杭州电子科技大学啊
哈哈
见笑了!
----------------解决方案--------------------------------------------------------
  相关解决方案