新人写了一组代码,不知道问题出在哪里。
目的是形成这样一组数列,中间为1,然后慢慢像外散开。。写出这样的[100][100]的矩阵。16 15 14 13
5 4 3 12
6 1 2 11
7 8 9 10
#include <stdio.h>
int main(int argc, char *argv[]) {
int a[100][100];
int o,p;
int i,j=1,q=1,c=1,d=1;
int x=49,y=49;
int n=1;
for(o=1;o<100;o++)
for(p=1;p<100;p++)
a[o][p]=0; //让矩阵的每个数字都为0
a[x][y]=1; //矩阵中间的数字为1
for(i=1;i<100;i++) //循环100次
if(i%2){
while(j<=i) {n=n+1;x=x+1;a[x][y]=n;j=j+1;} //右
while(q<=i) {n=n+1;y=y+1;a[x][y]=n;q=q+1;} //上
}
else{
while(c<=i) {n=n+1;;x=x-1;a[x][y]=n;c=c+1; }//左
while(d<=i) {n=n+1;;y=y-1;a[x][y]=n;d=d+1; }//下
for(o=1;o<100;o++)
for(p=1;p<100;p++)
printf("%4d",a[x][y]);printf("\n"); //显示所有数字
}
不知道问题出在哪了,希望得到一些指导。。