来自新浪博客:http://blog.sina.com.cn/s/blog_3fdbb88a0100vjxa.html
一个螺旋矩阵的C语言代码 (2011-10-26 21:25:05)
原题目链接:http://www.hack95.com/read.php?tid-108899-fpage-4-displayMode-1-page-1.html
题目描述:
从键盘输入一个整数(1~20)
则以该数字为矩阵的大小,把1,2,3…n*n 的数字按照顺时针螺旋的形式填入其中。例如:
输入数字2,则程序输出:
1 2
4 3
输入数字3,则程序输出:
1 2 3
8 9 4
7 6 5
输入数字4, 则程序输出:
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
看题理解,15min;编程调试运行,45min:共1hour,是不是太慢了,好久都没编程做数学题了!!!
代码如下:
//spiral_matrix.cpp
//////////////////////////////////////////////
#include <stdio.h>
#define N 25
int main()
{
while(1)
{
int length,i,num=1,row=0,col=0;
int matrix[N+1][N+1]={0};
printf("Please input a number in 1-%d: ",N);
scanf("%d",&length);
int max=length*length;
for(i=0;i<length/2;i++)
{
for (;length-1-i>col;col++)
matrix[row][col]=num++;
for (;length-1-i>row;row++)
matrix[row][col]=num++;
for (;col>i;col--)
matrix[row][col]=num++;
for (;row>i;row--)
matrix[row][col]=num++;
row++;col++;
}
if(length%2==1)
matrix[row][col]=num++;
for(row=0;row<length;row++)
{
for(col=0;col<length;col++)
printf("%3d",matrix[row][col]);
printf("\n");
}
}
return 0;
}
C语言螺旋矩阵
本文介绍了一个使用C语言实现的螺旋矩阵程序。用户输入一个整数作为矩阵大小,程序将按顺时针螺旋方向填充1至n*n的数字。示例展示了不同大小矩阵的输出,并附带了完整的代码。
573

被折叠的 条评论
为什么被折叠?



