我试图制作一个简单的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
任何人都能解释一下吗?
答案 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)
.