| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 405 人关注过本帖
标题:为什么总是一半一半对呢。。。求大神
只看楼主 加入收藏
cyy06180521
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2015-8-21
结帖率:100%
收藏
 问题点数:0 回复次数:2 
为什么总是一半一半对呢。。。求大神
下面这个程序到底哪错了?

#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 编辑 ]
2015-08-21 16:22
gold615
Rank: 2
等 级:论坛游民
帖 子:54
专家分:75
注 册:2014-6-7
收藏
得分:0 
没有吧 我这边运行很正常
2015-08-22 10:07
T_MACC
Rank: 4
等 级:业余侠客
威 望:8
帖 子:99
专家分:211
注 册:2015-4-14
收藏
得分:0 
很正常你的代码
2015-08-22 11:09
快速回复:为什么总是一半一半对呢。。。求大神
数据加载中...
 
   



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

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