求大神帮我看看这个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
请大神看到回复我,谢谢。
我来替你解答
if(65<=c1<=68)
c语言中不这么写
改为
if(c1>=65&&c1<=68)
你下面的if语句都要改 本帖最后由 仰望天上的光 于 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语句也是
所有的if语句都为真。比如65<=c1<=68, 先计算65<=c1,结果不是1就是0,1或0再与68比较,一定为真。 错有点多啊 看看书吧,都是基础细节 scanf("%c",&c1);
&这个符号加上,不加上会有warning
判断条件的写法不对,
c语言不能写 a<=b<=c这个样的连续的条件
只能分开写,用&&连接便是两个同时满足 即a<=b && b<=c;
这样才是对的 “(65<=c1<=68)”没你这么玩的,老老实实分开写吧
页:
[1]