この状態では、うまくいくのですが、particle のパラメータを変えると iti にうまく sankaku の値が代入されません。
なげっぱで申し訳ないのですが、どのようにすればよいかアドバイスいただけませんか?

#include <stdio.h>
#define N 0
struct point {
double zahyou[2];
double sokudo[2];
};
struct tri {
struct point ten[3];
};
int main(void)
{
struct point particle[4]={
{{0.0,0.8},{0.0,0.0}},
{{0.0,0.6},{0.0,0.0}},
{{0.0,0.4},{0.0,0.0}},
{{0.0,0.2},{0.0,0.0}}
};
struct point tyouten[15]={
{{0.0,1.0},{1.0,1.0}},
{{0.0,0.5},{1.0,0.0}},
{{0.0,0.0},{1.0,-1.0}},
{{0.5,1.0},{1.0,0.5}},
{{0.5,0.5},{1.0,-0.5}},
{{0.5,0.0},{1.0,-1.0}},
{{1.0,1.0},{1.0,0.0}},
{{1.0,0.5},{1.0,-1.0}},
{{1.0,0.0},{1.0,-0.5}},
{{1.5,1.0},{1.0,-0.5}},
{{1.5,0.5},{1.0,-0.5}},
{{1.5,1.0},{1.0,0.0}},
{{2.0,1.0},{1.0,-1.0}},
{{2.0,0.5},{1.0,0.0}},
{{2.0,0.0},{1.0,0.5}},
};
struct tri sankaku[16];
sankaku[0].ten[0]=tyouten[0];
sankaku[0].ten[1]=tyouten[1];
sankaku[0].ten[2]=tyouten[4];
sankaku[1].ten[0]=tyouten[0];
sankaku[1].ten[1]=tyouten[3];
sankaku[1].ten[2]=tyouten[4];
sankaku[2].ten[0]=tyouten[1];
sankaku[2].ten[1]=tyouten[2];
sankaku[2].ten[2]=tyouten[5];
sankaku[3].ten[0]=tyouten[1];
sankaku[3].ten[1]=tyouten[4];
sankaku[3].ten[2]=tyouten[5];
sankaku[4].ten[0]=tyouten[3];
sankaku[4].ten[1]=tyouten[4];
sankaku[4].ten[2]=tyouten[7];
sankaku[5].ten[0]=tyouten[3];
sankaku[5].ten[1]=tyouten[6];
sankaku[5].ten[2]=tyouten[7];
sankaku[6].ten[0]=tyouten[4];
sankaku[6].ten[1]=tyouten[5];
sankaku[6].ten[2]=tyouten[8];
sankaku[7].ten[0]=tyouten[4];
sankaku[7].ten[1]=tyouten[7];
sankaku[7].ten[2]=tyouten[8];
sankaku[8].ten[0]=tyouten[6];
sankaku[8].ten[1]=tyouten[7];
sankaku[8].ten[2]=tyouten[10];
sankaku[9].ten[0]=tyouten[6];
sankaku[9].ten[1]=tyouten[9];
sankaku[9].ten[2]=tyouten[10];
sankaku[10].ten[0]=tyouten[7];
sankaku[10].ten[1]=tyouten[8];
sankaku[10].ten[2]=tyouten[11];
sankaku[11].ten[0]=tyouten[7];
sankaku[11].ten[1]=tyouten[10];
sankaku[11].ten[2]=tyouten[11];
sankaku[12].ten[0]=tyouten[9];
sankaku[12].ten[1]=tyouten[10];
sankaku[12].ten[2]=tyouten[13];
sankaku[13].ten[0]=tyouten[9];
sankaku[13].ten[1]=tyouten[12];
sankaku[13].ten[2]=tyouten[13];
sankaku[14].ten[0]=tyouten[10];
sankaku[14].ten[1]=tyouten[11];
sankaku[14].ten[2]=tyouten[14];
sankaku[15].ten[0]=tyouten[10];
sankaku[15].ten[1]=tyouten[13];
sankaku[15].ten[2]=tyouten[14];
struct tri iti;
double dT = 0.1;
printf("%f\n%f\n\n",particle[N].zahyou[0],particle[N].zahyou[1]);
while(1){
if(particle[N].zahyou[0]<=0.5 && particle[N].zahyou[1]<=1.0 && particle[N].zahyou[1]>=0.5 )
if((1.0-particle[N].zahyou[0])>= particle[N].zahyou[1])
iti = sankaku[0];
else if((1.0-particle[N].zahyou[0]) < particle[N].zahyou[1])
iti = sankaku[1];
else if(particle[N].zahyou[0]<=0.5 && particle[N].zahyou[1]<= 0.5 && particle[N].zahyou[1]>=0 )
if((0.5-particle[N].zahyou[0]) > particle[N].zahyou[1])
iti = sankaku[2];
else if((0.5-particle[N].zahyou[0]) < particle[N].zahyou[1])
iti = sankaku[3];
else if(particle[N].zahyou[0]<=1.0 && particle[N].zahyou[1]<=1.0 && particle[N].zahyou[1]>=0.5 )
if((1.5-particle[N].zahyou[0])>= particle[N].zahyou[1])
iti = sankaku[4];
else if((1.5-particle[N].zahyou[0]) < particle[N].zahyou[1])
iti = sankaku[5];
else if(particle[N].zahyou[0]<=1.0 && particle[N].zahyou[1]< 0.5 && particle[N].zahyou[1]>=0 )
if((1.0-particle[N].zahyou[0])>= particle[N].zahyou[1])
iti = sankaku[6];
else if((1.0-particle[N].zahyou[0]) < particle[N].zahyou[1])
iti = sankaku[7];
else if(particle[N].zahyou[0]<=1.5 && particle[N].zahyou[1]<=1.0 && particle[N].zahyou[1]>=0.5 )
if((2.0-particle[N].zahyou[0])>= particle[N].zahyou[1])
iti = sankaku[8];
else if((2.0-particle[N].zahyou[0]) < particle[N].zahyou[1])
iti = sankaku[9];
else if(particle[N].zahyou[0]<=1.5 && particle[N].zahyou[1]< 0.5 && particle[N].zahyou[1]>=0 )
if((1.5-particle[N].zahyou[0])>= particle[N].zahyou[1])
iti = sankaku[10];
else if((1.5-particle[N].zahyou[0]) < particle[N].zahyou[1])
iti = sankaku[11];
else if(particle[N].zahyou[0]<=2.0 && particle[N].zahyou[1]<=1.0 && particle[N].zahyou[1]>=0.5 )
if((2.5-particle[N].zahyou[0])>= particle[N].zahyou[1])
iti = sankaku[12];
else if((2.5-particle[N].zahyou[0]) < particle[N].zahyou[1])
iti = sankaku[13];
else if(particle[N].zahyou[0]<=2.0 && particle[N].zahyou[1]< 0.5 && particle[N].zahyou[1]>=0 )
if((2.0-particle[N].zahyou[0])>= particle[N].zahyou[1])
iti = sankaku[14];
else if((2.0-particle[N].zahyou[0]) < particle[N].zahyou[1])
iti = sankaku[15];
else break;
printf("%f\n%f\n%f\n%f\n\n",iti.ten[0].zahyou[0],iti.ten[0].zahyou[1],iti.ten[0].sokudo[0],iti.ten[0].sokudo[1]);
printf("%f\n%f\n%f\n%f\n\n",iti.ten[1].zahyou[0],iti.ten[1].zahyou[1],iti.ten[1].sokudo[0],iti.ten[1].sokudo[1]);
printf("%f\n%f\n%f\n%f\n\n",iti.ten[2].zahyou[0],iti.ten[2].zahyou[1],iti.ten[2].sokudo[0],iti.ten[2].sokudo[1]);
break;
}
printf("%f",iti.ten[1].zahyou[1]);
return 0;
}