读你0810 发表于 2014-10-16 10:56:34

求大神帮我看看这个C程序怎么运行不了??

#include<stdio.h>
int main()
{
        char c1,c2,c3,c4,c5,C1,C2,C3,C4,C5;
        printf("输入字符:");
        scanf("%c,%c,%c,%c,%c",c1,c2,c3,c4,c5);//c1=getchar();
        //c2=getchar();
        //c3=getchar();
        //c4=getchar();
        //c5=getchar();
        printf("对应的字符:");
if(65<=c1<=68)
        C1=c1+22;
        else
    C1=c1-4;
if(97<=c2<=100)
        C2=c2+22;
        else
    C2=c2-4;
if(97<=c3<=100)
        C3=c3+22;
        else
    C3=c3-4;
if(97<=c4<=100)
        C4=c4+22;
        else
    C4=c4-4;
if(97<=c5<=100)
        C5=c5+22;
        else
    C5=c5-4;
printf("%c,%c,%c,%c,%c",C1,C2,C3,C4,C5);
return 0;
}



读你0810 发表于 2014-10-16 10:58:02

请大神看到回复我,谢谢。

avatar10010 发表于 2014-10-16 12:04:53

读你0810 发表于 2014-10-16 10:58
请大神看到回复我,谢谢。

我来替你解答



if(65<=c1<=68)   
c语言中不这么写

改为


if(c1>=65&&c1<=68)


你下面的if语句都要改

仰望天上的光 发表于 2014-10-16 16:36:06

本帖最后由 仰望天上的光 于 2014-10-16 16:40 编辑

1.
scanf("%c,%c,%c,%c,%c",c1,c2,c3,c4,c5);
改为
scanf("%c%c%c%c%c",&c1,&c2,&c3,&c4,&c5);
2.
如if(65<=c1<=68)    这里65<=c1要么为真(1)要么为假(0),但是1和0都<=68所以这句等价于
if(1)
后面的if语句也是

damingdingdin 发表于 2014-10-16 22:45:50

所有的if语句都为真。比如65<=c1<=68, 先计算65<=c1,结果不是1就是0,1或0再与68比较,一定为真。

abcacb 发表于 2014-10-16 23:15:15

错有点多啊

wanjian 发表于 2014-10-17 21:25:09

看看书吧,都是基础细节

Mr.屎壳螂 发表于 2014-10-18 22:38:50

scanf("%c",&c1);
&这个符号加上,不加上会有warning
判断条件的写法不对,
c语言不能写   a<=b<=c这个样的连续的条件
只能分开写,用&&连接便是两个同时满足   即a<=b && b<=c;
这样才是对的

大个的糖果 发表于 2014-10-30 16:24:27

fireofsun 发表于 2014-10-30 16:40:25

“(65<=c1<=68)”没你这么玩的,老老实实分开写吧
页: [1]
查看完整版本: 求大神帮我看看这个C程序怎么运行不了??