读书人

一到笔试题求解!多谢了!

发布时间: 2012-03-12 12:45:33 作者: rapoo

一到笔试题,求解!!!谢谢了!!!
一道笔试题,没答出来,请教!!
题:如矩阵 1 12 11 10
2 13 16 9
3 14 15 8
4 5 6 7
找出规律,并打印出一个N*N的矩阵;
(规律就是逆时针依次增大),求给个算法,有代码就更好了。谢谢!!

[解决办法]
在帖子里搜吧,螺旋矩阵。。。。。。。
[解决办法]
哦...
我以前写

只是相反啊

#include <iostream.h>
int a[10][10];
void Fun(int n)
{
int m=1;
for(int i=0;i <n/2;i++)
{
//ÉÏÃæ
for(int j=0;j <n-i;j++)
{
if(a[i][j]==0)
a[i][j]=m++;
}
//ÓÒ±ß
for(j=i+1;j <n-i;j++)
{
if(a[j][n-1-i]==0)
a[j][n-1-i]=m++;
}
//ÏÂÃæ
for(j=n-i-1;j> i;j--)
{
if(a[n-i-1][j]==0)
a[n-i-1][j]=m++;
}
//×ó±ß
for(j=n-i-1;j> i;j--)
{
if(a[j][i]==0)
a[j][i]=m++;
}
}
if(n%2==1)
a[n/2][n/2]=m;
}


void main(void)
{
int n;
cin> > n;
for(int i=0;i <n;i++)
{
for(int j=0;j <n;j++)
a[i][j]=0;
}
Fun(n);
for(i=0;i <n;i++)
{
for(int j=0;j <n;j++)
{
cout < <a[i][j] < < " ";
}
cout < <endl;
}
}

读书人网 >C语言

热点推荐