| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1284 人关注过本帖
标题:想了一晚上才想通的题目,考考同样初学的朋友。(高手莫笑)
只看楼主 加入收藏
CJAVA
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2005-4-2
收藏
 问题点数:0 回复次数:14 
想了一晚上才想通的题目,考考同样初学的朋友。(高手莫笑)
有一行密码电文:
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编辑过]


搜索更多相关主题的帖子: 考考 字母 初学 
2005-04-29 04:15
clown
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2005-4-2
收藏
得分:0 
前提是不用库函数吗??
这样也许行吧?我是新手,写的也不规范,大概就这个意思吧!
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);

2005-04-29 07:53
Rank: 1
等 级:新手上路
帖 子:255
专家分:0
注 册:2005-4-25
收藏
得分:0 
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);}

}

/bbs/showimg.asp?BoardID=5&filename=2005-4/2005427111228529.jpg" border="0" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://bbs./bbs/showimg.asp?BoardID=5&filename=2005-4/2005427111228529.jpg');}" onmousewheel="return imgzoom(this);" alt="" /> 欢迎加入C语言QQ群698156 我们都是菜鸟乃至新手 坚信有一天定能展翅高飞 因为有着努力的决心 衷心盼望你的到来 让我们一起进步
2005-04-29 09:54
musicml
Rank: 1
等 级:新手上路
帖 子:273
专家分:0
注 册:2005-4-2
收藏
得分: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个,依次类推,非字母不变。 //要编程吧密码翻译回原文。

#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(); }


Every thing is possible.
2005-04-29 11:11
yuki
Rank: 2
等 级:新手上路
威 望:5
帖 子:508
专家分:0
注 册:2005-2-4
收藏
得分:0 

这不是前两天刚做过的作业题吗? #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; }


我们都在命运湖上荡舟划桨,波浪起伏使我们无法逃离孤行;如果我们迷失方向,波浪将指引我们穿过另一天曙光
2005-04-29 17:05
weizheng
Rank: 1
等 级:新手上路
威 望:2
帖 子:286
专家分:0
注 册:2005-4-21
收藏
得分:0 
敢问这是初学者可以编的程序吗?

温和如玉,完美纯正。
2005-04-29 20:04
CJAVA
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2005-4-2
收藏
得分:0 
以下是引用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编辑过]


2005-04-29 20:54
620LCC
Rank: 1
等 级:新手上路
帖 子:78
专家分:0
注 册:2005-3-25
收藏
得分:0 
你们是什么大学呀 比我们么强多了

2005-04-29 21:13
城门口
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2005-4-8
收藏
得分:0 
也可以是这样:                                                            
 #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");
  }
2005-04-29 22:59
musicml
Rank: 1
等 级:新手上路
帖 子:273
专家分:0
注 册:2005-4-2
收藏
得分:0 
杭州电子科技大学啊
哈哈
见笑了!

Every thing is possible.
2005-04-30 00:19
快速回复:想了一晚上才想通的题目,考考同样初学的朋友。(高手莫笑)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.073192 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved