标题:凯撒密码(没用数组)???
只看楼主
shuimu10
Rank: 2
等 级:论坛游民
帖 子:53
专家分:48
注 册:2010-11-19
结帖率:100%
已结贴  问题点数:10 回复次数:4 
凯撒密码(没用数组)???
#include <stdio.h>
void main()
{
    char c;
    while((((c=getchar())!='\n')!=EOF))
    {    if(c>=97&&c<=122)
            printf("%c",(c-74)%26+'a');
        else if(c>=65&&c<=90)
            printf("%c",(c-42)%26+'A');
        else
            printf("%c",c);
    }
        
}

为什么会有Output Limit Exceed的结果  我在自己电脑可以编译运行啊(才刚学c  请大牛们不吝赐教!!)
搜索更多相关主题的帖子: 凯撒 密码 
2010-11-21 17:07
xiaomarn
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:348
专家分:2026
注 册:2009-3-18
得分:10 
while((((c=getchar())!='\n')!=EOF))这句的意思是用(c=getchar())!='\n')的结果与EOF比较
而(c=getchar())!='\n')得结果是1或0,EOF一般定义成int型的-1,所以条件永远真,死循环!
程序代码:
#include <stdio.h>

int
main()
{
      char c;
      while((c=(char)getchar())!='\n')
      {
            if(c>=97&&c<=122)
                  printf("%c",(c-74)%26+'a');
            else if(c>=65&&c<=90)
                  printf("%c",(c-42)%26+'A');
            else
                  printf("%c",c);
      }
      getch();
      return 0;
} 

2010-11-21 19:11
shuimu10
Rank: 2
等 级:论坛游民
帖 子:53
专家分:48
注 册:2010-11-19
得分:0 
非常感谢!!!
2010-11-21 19:50
shuimu10
Rank: 2
等 级:论坛游民
帖 子:53
专家分:48
注 册:2010-11-19
得分:0 
我用EOf是想多组输入
Input
本题有多组输入数据,每组数据只有一行,表示加密后的文字,由字母、空格、数字以及各种标点组成,文字长度不超过80个字符。
 Output
对于每组数据,输出一行,表示解密后的文字。
2010-11-21 19:56
huhai_
Rank: 2
来 自:湖北黄冈
等 级:论坛游民
帖 子:6
专家分:10
注 册:2010-11-30
得分:0 

#include <stdio.h>

int
main()
{
      char c;
      while((c=(char)
      getchar())!='\n')
      {
            if(c>=97&&c<=122)
                  printf("%c",(c-74)%26+'a');
            else if(c>=65&&c<=90)
                  printf("%c",(c-42)%26+'A');
            else
                  printf("%c",c);
      }
      getch();
      return 0;
}
2010-12-05 21:25



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-326408-1-1.html




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

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