C语言问题,else if用法怎么错了?怎么改?

#include<stdio.h>
int main()
{char q,w;
q=getchar();
if(q<87)
w=q+4;
printf("%c\n",w);
else if(q=87)
printf("A\n");
else if(q=88)
printf("B\n");
else if(q=89)
printf("C\n");
else if(q=90)
printf("D\n");
return 0;
}
--------------------Configuration: 003 - Win32 Debug--------------------
Compiling...
003.cpp
C:\Users\Admin\Desktop\新建文件夹\待测\003.cpp(8) : error C2181: illegal else without matching if
执行 cl.exe 时出错.
003.obj - 1 error(s), 0 warning(s)

if(q<87)
w=q+4;
printf("%c\n",w);
应该为
if(q<87)
{
w=q+4;
printf("%c\n",w);
}
加大括号,这样就是if下面的了,不然if只管一句,else if就没有对应的if了
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-10-06
if后面的两条语句使用{}括起来,要不然else if找不到它本回答被提问者采纳
第2个回答  2013-10-06
给 if(q<87)后面的两句
w=q+4;
printf("%c\n",w);
加上大括号
第3个回答  2013-10-06
#include<stdio.h>
int main()
{char q,w;
 q=getchar();
 if(q<87){
    w=q+4;
    printf("%c\n",w);
 }
 else if(q==87)
      printf("A\n");
 else if(q==88)
      printf("B\n");
 else if(q==89)
      printf("C\n");
 else if(q==90)
      printf("D\n");
 return 0;
}

C语言问题,else if用法怎么错了?怎么改?
应该为 if(q<87){ w=q+4;printf("%c\\n",w);} 加大括号,这样就是if下面的了,不然if只管一句,else if就没有对应的if了

为什么c语言中if和else不能嵌套使用?
1、先说结论:说明你的else是独立的。2、出错原理:c语言里,有if不一定有else,但是有else一定要有相对应的if。3、解决方法:这种情况你往前推一下,所有的else能不能跟相应的if对应,很容易就找到了。4、良好习惯:虽然c语言不要求通过tab或者space来区分上下级关系,但是要养成良好书写习惯,比如说...

C语言if else
首先程序肯定会出错的 if和else之间不可以超过一句语句 所以楼主这个程序是错的 如果改成这样的话 main(){int a=0,b=0,c=0,d=0;if(a=1) {b=1;c=2;}\/\/注意这里的a=1是赋值语句,所以是永真,因此执行b=1;c=2不执行else else d=3;printf("%d,%d,%d,%d\\n",a,b,c,d);\/\/a=...

求助,C语言else if简单错误
a==1才是逻辑表达式 后面的一样改,一律改成逻辑表达式,别用赋值表达式!另外,printf("=3")的上一行,为什么要加分号?加分号的作用只有一个:让这个if分支什么也不做。所以请去掉

c语言 求解 else if
有三个以上分支时就可以用else if。if ... else if ... else ...有两个分支一般只要用if ... else ...上面的错误是逻辑表达式的错误,并非else if的关系!a>1<=10 要改成 a>1 && a<=10.其余类似改正即可!if(a>1 && a<=10)b=c+6;else if(a>10&& a<=20)b=c+7;else if...

C语言if……else if多分支问题
条件语句中出错了,你写的是else if(0<x<=10),其实只用写 else if (x <= 10)而且(0<x<=10)表示 0<x的结果,即逻辑判断结果 如果 x > 0 则为真,结果为1,否则为0,再与10比较, 不管是1,还是0,<=10始终为真。所以,只要不执行第一个if语句的内容,就都执行y = 3*x*...

求大神关于c语言if与else的的问题。。。程序很简单,就是不知道为什么有...
第二次没有执行if语句,直接执行的else语句,就会是这样的结果。至于你说没有达到执行else的条件,那只是你觉得,计算机在这方面不会出错的,这个问题的话,其实也很简单,你的if后面的判断条件,应该是t31与t30的差大于0.01就继续循环,而计算差值是会出现负值的,假如t31=100,t30=101,直观判断...

c语言if else 语句中的问题
else (e>=14)-> 把(e>=14)去掉 另外, c在判断相等的时候是 e==11 双等号。这个编译的时候查不出来,但结果肯定就错了。

C语言中 if else语句格式搞糊涂了!!
当然可以了 if(条件){ 内容} else if (条件){内容} else if(条件){内容} ...else {内容} 这是标准格式,其中,else if 可以没有,也就是可以没有其他分支。最后这个else也可以没有 不用加end if ,这个不是c语言的语法

C语言 if-else问题
成功和失败,你写反了,因为rename("C:\\\\temp\\\\1.txt","C:\\\\temp\\2.txt")成功的话返回是0就是假,反之返回的是错误号,例如-1错误,-2错误等。

相似回答