fang6944 发表于 2015-8-22 23:29:06

c语言密码程序

我自己编写的密码程序
#include<stdio.h>
void main()
{
        char a;
                printf("please getchar :\n");
                while((getchar())!='\n');
                {
                if(90<a&&a<=94||a>112)
                        a=a-26;
                else if(97<=a&&a<=119||65<=a&&a<=90)
                        a=a+4;
                printf("%c\n",a);
                }


}
但是一弄就是编译就是?
正确答案是
#include <stdio.h>
void main()
{
char ch;
while((ch = getchar()) != '\n')
{
if((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z'))
ch = ch+4;
if((ch > 'Z' && ch <= 'Z'+4) || ch > 'z')
ch = ch-26;
printf("%c", ch);
}
printf("\n");
}
我想知道我的程序哪有问题

迷雾少年 发表于 2015-8-23 09:50:09

getchar()会返回 输入的字符 但是你并没有把返回的值赋予变量a

哥斯拉不说话 发表于 2015-8-23 09:55:42

1. a 的值是多少?
2. while 多了一个 分号。

fang6944 发表于 2015-8-23 10:07:45

这个问题我解决了,下面是正确的代码,首先我while后面加了个分号,其次不用打return0还有while里面少了一个ch
#include<stdio.h>
void main()
{
        char ch;
                printf("please getchar :\n");
                while((ch=getchar())!='\n')
                {
                if(87<=ch&&90>=ch||119<=ch&&112>=ch)
                        ch=ch-22;
                else
                        ch=ch+4;
                printf("%c",ch);
                }
                printf("\n");

}
页: [1]
查看完整版本: c语言密码程序