请高手帮看下,这个C语言循环为什么会是死循环?
#include<stdio.h>
main()
{
struct jg_gps
{
int ii[4];
int jj[4];
int kk[3];
}gps;
int i,j,k;
for(i=0;i<=3;i++)
for(j=0;j<=3;j++)
for(k=0;k<=2;k++)
{
for(gps.ii[i]=0;gps.ii[i]<=3;gps.ii[i]++)
for(gps.ii[j]=0;gps.jj[j]<=3;gps.jj[j]++)
for(gps.kk[k]=0;gps.kk[k]<=2;gps.kk[k]++)
printf("%d%d%d,",gps.ii[i],gps.jj[j],gps.kk[k]);
}
}
我想问下,结构中有数组的话怎么赋值?
gps.ii[i]=0,这种赋值方法是可以的吗? 结构?数组赋值?结构调用
[解决办法]
是可以的。
但你写错了一个地方:
for(gps.ii[j]=0;gps.jj[j]<=3;gps.jj[j]++)
你的代码中第一个jj,写成了ii
[解决办法]
给你改了下格式,死循环的原因楼上给出了
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
struct jg_gps
{
int ii[4];
int jj[4];
int kk[3];
}gps;
int i,j,k;
for(i=0; i<= 3; i++)
{
for( j = 0; j<=3; j++)
{
for( k=0; k<=2; k++)
{
for(gps.ii[i]=0;gps.ii[i]<=3;gps.ii[i]++)
{
for(gps.jj[j]=0;gps.jj[j]<=3;gps.jj[j]++)
for(gps.kk[k]=0;gps.kk[k]<=2;gps.kk[k]++)
printf("%d%d%d, ",gps.ii[i],gps.jj[j],gps.kk[k]);
printf("\n");
}
}
}
printf("\n");
}
return 0;
}