您的位置:程序门 -> c/c++ ->



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


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


一到笔试题,求解!!!谢谢了!!!
发表于:2007-05-10 16:38:59 楼主
一道笔试题,没答出来,请教!!
题:如矩阵   1   12   11   10
                      2   13   16   9
                      3   14   15   8
                      4   5     6     7
找出规律,并打印出一个n*n的矩阵;
(规律就是逆时针依次增大),求给个算法,有代码就更好了。谢谢!!
发表于:2007-05-10 16:45:231楼 得分:0
在帖子里搜吧,螺旋矩阵。。。。。。。
发表于:2007-05-10 16:46:112楼 得分:0
哦...
我以前写

只是相反啊

#include <iostream.h>
int   a[10][10];
void   fun(int   n)
{
    int   m=1;
    for(int   i=0;i <n/2;i++)
    {
    //&eacute;&iuml;&atilde;&aelig;
    for(int   j=0;j <n-i;j++)
    {
    if(a[i][j]==0)
    a[i][j]=m++;
    }
    //&oacute;&ograve;±&szlig;
    for(j=i+1;j <n-i;j++)
    {
    if(a[j][n-1-i]==0)
    a[j][n-1-i]=m++;
    }
    //&iuml;&acirc;&atilde;&aelig;
    for(j=n-i-1;j> i;j--)
    {
    if(a[n-i-1][j]==0)
    a[n-i-1][j]=m++;
    }
    //×ó±&szlig;
    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;
}
}
发表于:2007-05-10 16:52:383楼 得分:0
谢谢


快速检索

最新资讯
热门点击