即使一切似乎都正确,我也会收到编译错误

时间:2015-09-13 10:24:00

标签: c

我试图制作一个简单的C程序,给定X和Y坐标,告诉象限。 我收到了错误:

cordinate.c: In function ‘main’:
cordinate.c:28:1: error: expected ‘;’ before ‘{’ token

据我所知,语法方面我是正确的。

代码:

#include <stdio.h>
void main() {
    int x, y;

    printf("enter the cordinate x and y\n");
    scanf("%d%d",&x,&y);

    if ((x > 0) && (y > 0)) {
        printf("The point lies in 1st quadrant \n");
    } else if ((x < 0) && (y > 0)) {
        printf("The point lies in 2nd quadrant \n");
    } else if ((x < 0) && (y < 0)) {    
        printf("The point lies in 3rd quadrant \n");
    } else ( (x>0) && (y<0) )

    {   
        printf("The point lies in 4th quadrant \n");
    }
}

当我做任何说法时,我得到输出为

input 
22
33
output
The point lies in 1st quadrant 
The point lies in 4th quadrant

任何人都能解释一下吗?

3 个答案:

答案 0 :(得分:3)

 else ( (x>0) && (y<0) )
 {   
       printf("The point lies in 4th quadrant \n");
  }

否则不会采取任何条件。使用

 else if ( (x>0) && (y<0) )

或仅else

答案 1 :(得分:2)

else之后没有任何条件,请修改您的程序:

 #include<stdio.h>
  void main()
 {
    int x,y;

    printf("enter the cordinate x and y\n");
    scanf("%d%d",&x,&y);

    if((x>0) && (y>0))
    {
        printf("The point lies in 1st quadrant \n");
    }  
    .
    .
    .

    else   // The condition removed form here
    {   
        printf("The point lies in 4th quadrant \n");
    }
}

else表示如果所有条件都失败,那么它将执行else之后的内容,因此不需要在它之后指定条件。

答案 2 :(得分:2)

您似乎在此行中缺少if个关键字:

} else ( (x>0) && (y<0) )

此外,您不应使用void main()You can only use either int main(void) or int main(int argc, char **argv).