#include<stdio.h>
void main(){
float p1,p2;
float *x,*y;
printf("Enter the co-ordinates (x,y) : ");
scanf("%f%f",p1,p2);
x = &p1;
y = &p2;
printf("The co-ordinates(%f,%f) lies in quadrant ",*(x),*(y));
if(*x == 0 && *y ==0) {
printf("It is the origin.");
return;
}
if(*x > 0 && *y > 0){
printf("1");
}
else if(*x < 0 && *y > 0){
printf("2");
}
else if(*x < 0 && *y < 0){
printf("3");
}
else printf("4");
return ;
}
此代码抛出错误“Segmentation Fault”。 谁能帮帮我?
我试图将值分配给普通变量,然后将指针分配给该变量的地址。但它会抛出同样的错误。
线
scanf("%f%f",p1,p2);
错了。
%f
在 scanf()
期望 pointers 的 float
变量,所以它应该是
scanf("%f%f",&p1,&p2);
检查输入失败更好。
if (scanf("%f%f",&p1,&p2) != 2){
puts("failed to read values");
return;
}