为什么总是一半一半对呢。。。求大神
下面这个程序到底哪错了?#include <stdio.h>
int rotate_right(char ch);
int rotate_left(char ch);
int encode(char ch, int shift);
int main( void )
{
int shift;
char ch;
printf("Enter shift: ");
scanf("%d", &shift);
printf("Enter Text: ");
while((ch = getchar()) != EOF) {
putchar(encode(ch,shift));
}
return 0;
}
int rotate_right(char ch) {
if(ch >= 'A' && ch <= 'Y'){
ch++;
}
else if(ch >= 'a' && ch <= 'y'){
ch++;
}
else if(ch == 'Z'){
ch = 'A';
}
else if(ch == 'z'){
ch = 'a';
}
return ch;
}
int rotate_left(char ch) {
if(ch >= 'B' && ch <= 'Z'){
ch--;
}
else if(ch >= 'b' && ch <= 'z'){
ch--;
}
else if(ch == 'a'){
ch = 'z';
}
else if(ch == 'A'){
ch = 'Z';
}
return ch;
}
int encode(char ch, int shift) {
int i;
if(shift <= 0) {
for(i = 0; i > shift; i--) {
ch = rotate_left(ch);
}
}
else if(shift > 0) {
for(i = 0; i < shift; i++) {
ch = rotate_right(ch);
}
}
return ch;
}
这个程序是让字母之间互相转换,可是当shift<0的时候,只对小写字母有用,当shift>0的时候,只对大写字母有用
[ 本帖最后由 cyy06180521 于 2015-8-21 16:24 编辑 ]