c语言问题。。帮忙看下。。

来源:百度知道 编辑:UC知道 时间:2024/06/19 23:43:04
为了使电报码保密,往往需要将电文按一定规律译成密码,然后收报人再将其译回原文。
例如,可以按下面规律译成密码:
将每一个字母变成它后面的一个字母,如将 ‘A’变成 ‘B’, ‘a’变成‘b’,‘Z’变成‘A’, ‘z’变成‘a’……,其它字符不变,以 ‘!’作为电文结束标志。
现设有一段电文:You are right!
按上述给出的译文规则,则应破译成:Zpv bsf sjhiu!
忘了附上程序了的。。#include<stdio.h>
void main()
{
void translate (char * );

char a[100];
printf("input your words:\n");
scanf("%s",a);
translate(a);

}
void translate(char *b )
{ char c[100];
int i=0;
while(b[i]!='!')

{
if(b[i]=='z')
c[i]='a';
else if(b[i]=='Z')
c[i]='A';
else if(b[i]>'a'&&b[i]<'z'||b[i]>'A'&&b[i]<'Z')
c[i]=b[i]+1;
else
c[i]=b[i];
i++;
}

c[i]=b[i];
c[i+1]=b[i+1];
printf("\n%s",c);
}

问题是啥啊?

#include<stdio.h>
void main()
{
void translate (char * );

char a[100];
printf("input your words:\n");
scanf("%s",a);
translate(a);

}
void translate(char *b )
{ char c[100];
int i=0;
while(b[i]!='!')

{
if(b[i]=='z')
c[i]='a';
else if(b[i]=='Z')
c[i]='A';
else if(b[i]>'a'&&b[i]<'z'||b[i]>'A'&&b[i]<'Z')
/*这里做修改b[i]>='a'&&b[i]<'z'||b[i]>='A'&&b[i]<'Z'*/
c[i]=b[i]+1;
else
c[i]=b[i];
i++;
}

c[i]=b[i];
c[i+1]=b[i+1];
printf("\n%s",c);
}

else if(b[i]>'a'&&b[i]<'z'||b[i]>'A'&&b[i]<'Z')
这一句可以=a,不要只写大于。

void main()