请问这一段错在哪里了?

#include<stdio.h>
#include<math.h>

main(){
    
    float x,y,d;
	int c,i;
	for(i=0;i<3;i++){
    printf("输入坐标");
    scanf("%f%f",&x,&y);
    if(x>0) {if(y>0) c=1;
            else if(y<0) c=4;} 
    if(x<0) {if(y>0) c=2;
            else if(y<0) c=3;}   //判断输入的点在哪个象限
    else {printf("请输入数字"); i=4;scanf("%c");}; 
	switch(c){
		case 1:
			d=sqrt(pow(x-2,2)+pow(y-2,2));break; 
		case 2:
			d=sqrt(pow(x+2,2)+pow(y-2,2));break; 
		case 3:
			d=sqrt(pow(x+2,2)+pow(y+2,2));break; 
		case 4:
			d=sqrt(pow(x-2,2)+pow(y+2,2));break; 
	}                          //计算所输入的点到所在象限的圆心的距离 
	if(d>1) printf("0");
	else if(d<=1) printf("10");  //判断距离是否小于1,判断是否在圆内 
	/*printf("d=%f,c=%f",d,c);*/ }
	}   

请问这段错在哪里了?为什么不管输入什么都会反馈“请输入数字”?

这是题目

scanf("%c")   -> scanf("%d",&c)