他怎么说我非法使用浮点数.d1=(x-2)^2+(y-2)^2;

来源:百度知道 编辑:UC知道 时间:2024/06/04 02:29:31
#include<stdio.h>
void main()
{
int h=10;
float x,y,d1,d2,d3,d4;
printf("qingshuruzuobiao");
scanf("%f,%f",&x,&y);
d1=(x-2)^2+(y-2)^2;
d2=(x+2)^2+(y-2)^2;
d3=(x-2)^2+(y+2)^2;
d4=(x+2)^2+(y+2)^2;
if(d1>1&&d2>1&&d3>1&&d4>1)
printf("h=0");
else
printf("h=10");
getch();
}

错误在
d1=(x-2)^2+(y-2)^2;
d2=(x+2)^2+(y-2)^2;
d3=(x-2)^2+(y+2)^2;
d4=(x+2)^2+(y+2)^2;
之所以说非法使用浮点数是因为^的左操作数只能是int型,因为要与int 2 位与。
所以将float x,y,d1,d2,d3,d4;改为int 就ok了。
还有 scanf("%f,%f",&x,&y); 改为%d,%d,不过你的习惯不太好,scanf("%f,%f",&x,&y); 最好中间不要加,改成空格 最好。^-^