当前位置: 代码迷 >> C语言 >> C的一道题,不知道我写成这样行不,还有没有更好的办法,谢谢了
  详细解决方案

C的一道题,不知道我写成这样行不,还有没有更好的办法,谢谢了

热度:278   发布时间:2006-02-22 08:29:00.0
按照楼主给出的题,就按你写的程序就可以了。其它的都不符合题意哦
----------------解决方案--------------------------------------------------------
真的是几天不用手生啊..
没想到写这么简单的一个小程序给错这么多..
惭愧啊.
----------------解决方案--------------------------------------------------------
以下是引用aiyuheng在2006-2-21 17:35:00的发言:
你这个没有通用性啊 既然是密码 就是把任何自己的密码按规律加密 
你这样不过是把CHINA变成GLMRE输出罢了
并没有成为译码的程序啊!!


----------------解决方案--------------------------------------------------------
有个问题就是后面的字母如z后面第四个字母是乱码,不知道要不要注意。
以下我的程序也有个问题,就是当输入的字符连续超过30个时就出问题啦,可以重新分配空间继续读入字符的。
#include <stdio.h>
void main(){
char a[30];
int i,j;
printf("Please input the letters:\n");
for(i=0;i<30;i++){
a[i]=getchar();
if(a[i]=='\n')
break;
j=i;
}
for(i=0;i<=j;i++){
a[i]+=4;
if(a[i]>'z')
a[i]-=26;
}
for(i=0;i<=j;i++){
printf("%c",a[i]);
}
}

----------------解决方案--------------------------------------------------------
#include <stdio.h>
main ()
{
char ch;
while((ch=getchar())!='\n')
printf("%c",ch+4);
printf("\n");
}

改成这样是不是更简单一些呢?
----------------解决方案--------------------------------------------------------

punish 的想法很好,不过要稍改一下就可以了
把ch+4 改成

一 只考虑小写则用以下两种形式均可
(1) (ch>'v')?ch-22:ch+4
(2) (ch-97+4)%26+97

二 考虑到大写,小写都可用的话就麻烦一些了
因为大写的话上面的两个表达式中,第一个表达式中的小写字母v要改成大写字母V
第二个表达式中的97要改成65, 65和97刚好是大写小写字母A的ascii值,如记不住,
也可用'A' 和'a'代替,具体可用if 语句控制,或用三项表达式,请自己考虑


----------------解决方案--------------------------------------------------------
紧急招聘网站程序员和网页设计制作

紧急招聘信息

1、网站程序员:

职位描述:
1、大专以上学历,累计2年以上工作经验;

2、精通AspAspX的程序开发人员;
3
、具有AccessSQL ServerOracle方面的开发经验;具有曾经参与或独立完 成大型网上商城、软件开发经验者优先;
4
、熟练操作脚本语言开发工具与数据库服务器;
5、工资待遇(月薪3000-5000元人民币),过适用期上三险。

联系人:孙小姐

联系电话:010-82894588-610

2、网页设计制作

职位描述:

1、大专以上学历,有2年以上网站美术制作经验

2、熟悉flash dreamwave photoshop

3、了解网站基本程序

4、设计感良好,具有较好的美术素养,能很好的理解并实现客户的要求,良好的沟通能力,独立工作能力较强,美术专业更佳。

5、工资待遇(月薪2000-4000人民币),过适用期上三险。

联系人:孙小姐

联系电话:010-82894588-610


----------------解决方案--------------------------------------------------------
楼上不行吧。。
#include<stdio.h>
#include<string.h>
main()
{ char s[100];
int i,n;
scanf("%s",s);
n=strlen(s);
for(i=0;i<n;i++)
s[i]='\n';
printf("%c",s[i]+4);
}

[此贴子已经被作者于2006-2-24 19:49:30编辑过]


----------------解决方案--------------------------------------------------------
楼上的要是遇到wxzy这样的最后四位字母那你要咋办???
----------------解决方案--------------------------------------------------------

这样就没有通用行了,当输入的是X,Y,Z时候怎么加密呢


----------------解决方案--------------------------------------------------------
  相关解决方案