C语言,China翻译为Glmre,在线等!

我的意思是这样的,
在键盘上输入任意的五个字母,将翻译成与之对应的后第4个字母,例“A”后面第四个字母为“E”。
程序是这样的:

#include<stdio.h>
void main()
{
char c1,c2,c3,c4,c5;
scanf("%c,%c,%c,%c,%c\n",&c1,&c2,&c3,&c4,&c5);
c1+=4;
c2+=4;
c3+=4;
c4+=4;
c5+=4;
printf("%c,%c,%c,%c,%c\n",c1,c2,c3,c4,c5);
}
这是我写的,但是不对,输出一直不对应,是哪里出问题了啊

#include<stdio.h>
void main()
{
char c1,c2,c3,c4,c5;
scanf("%c %c %c %c %c",&c1,&c2,&c3,&c4,&c5);
c1+=4;
c2+=4;
c3+=4;
c4+=4;
c5+=4;
printf("%c,%c,%c,%c,%c\n",c1,c2,c3,c4,c5);
}
因为你这个scanf里面加了逗号所以输入时也要加逗号 比方:a,b,c,d,e
而且把scanf中\n去掉
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-13
就像 楼上说的
scanf 输入格式要注意
按你说的
应该
scanf("%c%c%c%c%c",&c1,&c2,&c3,&c4,&c5);
你再试试。不行你就用getchar()来获取。
C1 = getchar();再试试看。
第2个回答  2012-05-13
scanf("%c,%c,%c,%c,%c\n",&c1,&c2,&c3,&c4,&c5);
“\n”去掉,输入一个字母后要加“,”号
还有啊,输入XYZxyz这些要怎么办啊?题目有漏洞追问

不是,就是任意5个字母,还是不行啊,比如我输入abcde,就是错的。

追答

scanf("%c,%c,%c,%c,%c\n",&c1,&c2,&c3,&c4,&c5);
这里输入时这样子的格式:a,b,c,d,e 回车
要按scanf语句里的格式输入

追问

这个没问题的,我试过了。
我刚刚试了一下。 就用一个字母的话。
#include
void main()
{
char c;
scanf("%c",&c);
c+=4;
printf("%c",c);
}
这就是对的,我输入C得出G,输入h得出l。
为什么上面一起写,就输出的不对呢。而且输出的都是那种符号,什么+啊,积分号啊。。。

追答

你要有一个判断是否会超过字符的ACSII码值,像Y加4以后就是“]”

第3个回答  2012-05-13
/*
请输入字符串 : aasXDFhj12mko
eewBHJln12qos
请按任意键继续. . .
*/
#include <stdio.h>

int main() {
char s[81],*p;
printf("请输入字符串 : ");
gets(s);
for(p = s; *p; ++p) {
if(*p >= 'a' && *p <= 'z')
*p = ((*p - 'a') + 4) % 26 + 'a' ;
if(*p >= 'A' && *p <= 'Z')
*p = ((*p - 'A') + 4) % 26 + 'A' ;
}
printf("%s\n",s);
return 0;
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网