#define b 1
typedef struct
{int x
int y
}xy
void fun1(int *px,int *py,int *qx,int *qy)
int fun2(int f,int d)
int M=37
void main()
{ xy p,q
int k
int i=1
p.x=p.y=q.x=q.y=0
printf("p.x=")
scanf("%d",&(p.x))
printf("\n")
printf("p.y=")
scanf("%d",&(p.y))
printf("\n")
printf("k=")
printf("\n")
scanf("%d",&k)
while(i<k)
{fun1(&(p.x),&(p.y),&(q.x),&(q.y))
i++
}
}
void fun1(int *px,int *py,int *qx,int *qy)
{int a,c
if((*qx)==0&&(*qy)==0)
{a=(3*(*px)*(*px)+b)*fun2((*py),M) ///////////////////missing a
(*qx)=a*a-2*(*px)
(*qy)=a*((*px)-(*qx))-(*py)
}
else
if(((*px)!=(*qx))||((*py)!=(*qy)))
{a=((*py)-(*qy))*fun2((*px)-(*qx),M)
(*qx)=a*a-(*px)-(*qx)
(*qy)=a*((*px)-(*qx))-(*py)
}
else
{a=(3*(*px)*(*px)+b)*fun2(2*(*py),M)
(*qx)=a*a-2*(*px)
(*qy)=a*((*px)-(*qx))-(*py)
}
}
int fun2(int f,int d)
{
int x1,x2,x3,y1,y2,y3,t1,t2,t3,q,t
x1 = y2 = 1
x2 = y1 = 0
x3 = ( f>=d )?f:d
y3 = ( f>=d )?d:f
while( 1 )
{
if ( y3 == 0 )
{
return t
}
if ( y3 == 1 )
{
t= y2
return t
}
q = x3/y3
t1 = x1 - q*y1
t2 = x2 - q*y2
t3 = x3 - q*y3
x1 = y1
x2 = y2
x3 = y3
y1 = t1
y2 = t2
y3 = t3
}
}
i++可以写在switc语句里面,但是如果写在switc语句里面,就要在每一个case、default中都加上i++你可以用很简洁的方式解决问题,也可以用很繁琐的方式解决问题,就是这个区别。
求采纳为满意回答。