我刚开始学习c编程。
对于这个问题,我写了下面的代码。你能帮我找到错误吗?我没有得到理想的结果,并且最后的其他语句总是被执行。
#include<stdio.h>
#include<conio.h>
void dummy(float *a)
{
float b=*a; //perform some floating access
dummy (&b); //calling a floating point function
}
void main()
{
double x,y;
clrscr();
scanf("%lf %lf",x,y);
if(x==0 && y!=0)
{
printf("The point lies on the y-axis.");
}
else if(y==0 && x!=0 )
{
printf("The point lies on the x-axis.");
}
else if(x==0 && y==0)
{
printf("The point is the origin");
}
else
{
printf("The point lies neither on the x nor the y axis ");
}
getch();
}
答案 0 :(得分:2)
在使用scanf
从键盘读取值时,您需要在变量前面添加&
。
而不是
scanf("%lf %lf",x,y);
使用
scanf("%lf %lf",&x,&y);
<强>更新强>
您不必每次都检查y
和x
而if(x==0 && y!=0)
只使用一个,if(x==0)
或if(y==0)
尝试:
void main()
{
double x,y;
clrscr();
scanf("%lf %lf",&x,&y);
if(x==0 && y==0)
{
printf("points lies on origin.");
}
else if(y==0)
{
printf("points lies on y-axis.");
}
else if(x==0)
{
printf("points lies on x-axis");
}
else
{
printf("The point lies neither on the x nor the y axis ");
}
getch();
}
答案 1 :(得分:1)
要检查是否使用宏或功能
#define FEQUAL(x,y,err) (fabs((x) - (y)) < (err))
答案 2 :(得分:1)
对clrscr()函数的未定义引用。因此,您可以尝试从代码中删除clrscr()函数。
#include<stdio.h>
#include<conio.h>
void dummy(float *a)
{
float b=*a; //perform some floating access
dummy (&b); //calling a floating point function
}
void main()
{
double x,y;
scanf("%lf %lf",&x,&y);
if(x==0 && y!=0)
{
printf("The point lies on the y-axis.");
}
else if(y==0 && x!=0 )
{
printf("The point lies on the x-axis.");
}
else if(x==0 && y==0)
{
printf("The point is the origin");
}
else
{
printf("The point lies neither on the x nor the y axis ");
}
getch();
}
它将起作用。
答案 3 :(得分:1)
一个简单的解决方案可能是
#include <stdio.h>
int main()
{
int x,y;
printf("Enter the point ");
scanf("%d,%d",&x,&y);
if (y==0)
{
if (x==0)
{
printf("\nPonit lies on the origin\n");
}
else
printf("\nPoint lies on X-axis\n");
}
else if (x==0)
{
if (y==0)
{
printf("\nPoint lies on the origin\n");
}
else
printf("\nPoint lies on the Y-axis\n");
}
else
printf("\nPoint lies in X-Y coordinate\n");
return 0;
}