的确跳过了 scanf("(%d,%d)",&x1,&y1); 问题好像出在圆括号上(我不知道为什么?),两个scanf中都去掉圆括号就正常了。如下:
scanf("%d,%d",&x,&y);
scanf("%d,%d",&x1,&y1);
scanf("%d,%d",&x,&y);
scanf("%d,%d",&x1,&y1);
#include "stdio.h" #include "math.h" int main() { int x,y,r,x1,y1,temp1,temp2; double j; double h; printf("请输入圆的坐标:如(x,y)\n"); scanf("(%d,%d)",&x,&y); printf("请输入圆的半径:r\n"); scanf("%d",&r); fflush(stdin);//清除缓冲区数据函数 printf("请输入点的坐标:如(x1,y1)\n"); scanf("(%d,%d)",&x1,&y1); if(x>x1) temp1=x-x1; else temp1=x1-x; if (y>y1) temp2=y-y1; else temp2=y1-y; j=temp1*temp1+temp2*temp2; h=sqrt(j); if(h>r) printf("点不在圆上!"); else printf("点在圆上!"); return 0; }