[螺旋矩阵]输入两个整数,第一个数决定一个 n*n 的矩阵,第二个数决定从 1 开始赋值,赋值的上限。
代码如下:#include <stdio.h>
#define NUM 20
int main()
{
int xNx[NUM][NUM] = {0};
int num1,num2,temp=1;
int i = 0,j = 0;
scanf("%d %d", &num1, &num2);
xNx[i][j] = temp;
while (1) {
while (i != num1-1 && xNx[i+1][j] == 0) {
if (temp >= num2) {
break;
}
xNx[++i][j] = ++temp;
}
while (j != num1-1 && xNx[i][j+1] == 0) {
if (temp >= num2) {
break;
}
xNx[i][++j] = ++temp;
}
while (i != 0 && xNx[i-1][j] == 0) {
if (temp >= num2) {
break;
}
xNx[--i][j] = ++temp;
}
while (j != 0 && xNx[i][j-1] == 0) {
if (temp >= num2) {
break;
}
xNx[i][--j] = ++temp;
}
if (temp >= num2) {
break;
}
}
for (j = 0; j < num1; j++) {
for (i = 0; i < num1; i++) {
printf("%d ", xNx[i][j]);
}
printf("\n");
}
return 0;
}