变身ハイジ:C程序里的一个小问题

来源:百度文库 编辑:高考问答 时间:2024/04/29 00:43:12
这里有个打印魔方阵的程序,想请教一下里面的那个P的作用是什么,为什么条件成立的时候要付个0给P呢。谢谢了。
--------------------
#include <stdio.h>
main()
{
int a[16][16],i,j,n,k,p;
p=1;
while (p==1)
{printf ("enter n(n=1 to 15):");
scanf ("%d",&n);
if ((n!=0) && (n<=15) && (n%2!=0))
p=0;}

for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
a[i][j]=0;

j=n/2+1;
a[1][j]=1;
for (k=2;k<=n*n;k++)
{i=i-1;j=j+1;
if ((i<1) && (j>n))
{i=i+2;j=j-1;}
else
{if (i<1) i=n;
if (j>n) j=1;}
if (a[i][j]==0)
a[i][j]=k;
else
{i=i+2;j=j-1;a[i][j]=k;}
}

for (i=1;i<=n;i++)
{for (j=1;j<=n;j++)
printf ("%5d",a[i][j]);
printf ("\n");}
}

因为while (p==1) {......};
当P等于1时它是无限循环。

条件成立即达到该条件满足时while的无限循环应停止。
P就是用来作控制的变量。等于0时跳出无限循环。

这里的0表示假,1表示真,也就说只有条件真时才执行循环体,否则退出。

意思是如果输入的数据在1-15之间,程序就输出一个魔方后结束, 如果输入的数据不合法会继续要求输入 n