请问我的程序出了什么问题?勾股数
【程序功能】 输入两个自然数P和Q(P),找出满足下列条件的整数组(K,M,N)。(1) P≤K≤Q(2) K*K+M*M=N*N【编程要求】1.编写函数int chlm(int p,int q,int a[ ][3])实现以下功能:查找K,M在[p,q]范围内取值且满足以上条件的所有整数组(K,M,N)。若找到则将这些整数组保存到a指向的数组中,函数返回找到的整数组的组数。若找不到则函数返回0。2.编写函数main实现以下功能:声明二维数组a和变量p、q,输入两个自然数并保存到p和q中(p),调用chlm函数在[p,q]范围内查找满足以上条件的整数组。若找不到则在屏幕上输出“out found”,否则将查找结果保存到a数组中,输出a数组数据到屏幕及文件myf2.out中。以下是本菜鸟编的程序(用的是Tubo C):
#include
int i=0;
int chlm(int p,int q,int a[][3])
{int k,m,n;
for(k=p;k<=q-1;k++)
for(m=k+1;m<=q;q++)
for(n=m;n<=k+m;n++)
if(k*k+m*m==n*n) /*陷入死循环?系统标识这里*、
{a[i][0]=k;
a[i][1]=m;
a[i][2]=n;
}
if(i==0)return 0;
else return 1;
}
main()
{int j,a[100][3],p,q;
FILE *fp;
fp=fopen("myf2.out","w+");
scanf("%d%d",&p,&q);
if(chlm(p,q,a))
for(j=0;j