| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1226 人关注过本帖
标题:关于数组的题~
只看楼主 加入收藏
lzp311
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-4-20
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:16 
关于数组的题~
我刚接触数组,偶尔看到的题,请高手多提供几种方法~C语言或C++方法都行~
1   2    3   4    5  6
20  21   22  23  24  7
19  32   33  34  25  8
18  31   36  35  26  9
17  30   29  28  27 10
16  15  14  13   12 11
谢谢了!!
搜索更多相关主题的帖子: C语言 
2010-04-22 22:38
ljt
Rank: 6Rank: 6
等 级:侠之大者
威 望:3
帖 子:191
专家分:431
注 册:2009-4-6
收藏
得分:0 
你要干嘛??
2010-04-23 10:13
南国利剑
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:29
帖 子:1165
专家分:3536
注 册:2010-4-12
收藏
得分:0 
楼主,是要写一个程序能够实现输出满足你给出的规律的数组吧?

南国利剑
2010-04-23 13:05
mywaylgh
Rank: 8Rank: 8
来 自:厨房
等 级:蝙蝠侠
威 望:5
帖 子:188
专家分:729
注 册:2010-3-10
收藏
得分:10 
螺旋矩阵赋值嘛
算法:起始方向为右,碰壁(非零值)后按右下左上的顺时针改变方向。

程序代码:
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int **a;
    int i,j;
    int n=1,row,direction;

    printf("Input the number of rows:");
    scanf("%d",&row);

    //set matrix
    a = (int **)malloc((row+2)*sizeof(int *));
    for (i=0;i<row+2 ;i++ )
        a[i]=(int *)calloc(row+2,sizeof(int));

    //initail wall
    for (i=0;i<row+2 ;i++ )
    {
        a[i][0]=1;
        a[0][i]=1;
        a[i][row+1]=1;
        a[row+1][i]=1;
    }
    i=1;
    j=1;
    a[1][1]=1;
    direction=1; /* 1 right,2 down,3 left, 4 up */
   
    while(n<row*row)
    {
        if (direction==1)
        {
            if (a[i][j+1]!=0)
            {
                direction=2;
                continue;
            }
            a[i][++j] = ++n;
        }    
        else if(direction==2)
        {
            if (a[i+1][j]!=0)
            {
                direction=3;
                continue;
            }
            a[++i][j] = ++n;
        }
        else if(direction==3)
        {
            if (a[i][j-1]!=0)
            {
                direction=4;
                continue;
            }
            a[i][--j] = ++n;
        }
        else
        {
            if (a[i-1][j]!=0)
            {
                direction=1;
                continue;
            }
            a[--i][j] = ++n;
        }
    }

    //printf
    for (i=1;i<=row ;i++ )
    {
        for (j=1;j<=row ;j++ )
            printf("%d ",a[i][j]);
        printf("\n");
    }

    return 0;
}



人生就像茶几 上面放着许多杯具

人生也像厨房 里面总有一些洗具
2010-04-23 16:49
玩出来的代码
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:河南新乡
等 级:贵宾
威 望:11
帖 子:742
专家分:2989
注 册:2009-10-12
收藏
得分:10 
程序代码:
#include<stdio.h>
int main(void)
{
    int i,x,j,y,n,a[20][20],k;
    printf("input :");
    scanf("%d",&n);
    for (i=0,y=0,k=1;i<n;i++)
    {
        x=i;
        while (x<n-i)a[x++][y]=k++;x--;k--;
        while (y<n-i)a[x][y++]=k++;y--;k--;
        while (x+1>i)a[x--][y]=k++;x++;k--;
        while (y>i)a[x][y--]=k++;y++;
    }
    printf("\n");
    for (i=0;i<n;i++)
    {
        for (j=0;j<n;j++)
            printf("%6d",a[j][i]);
        printf("\n");
    }
    return 0;
}


离恨恰如春草,更行更远还生。
2010-04-23 18:31
南国利剑
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:29
帖 子:1165
专家分:3536
注 册:2010-4-12
收藏
得分:0 
楼上写的不错,顶

南国利剑
2010-04-26 23:48
gggtjhjee
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-04-27 07:10
wow51
Rank: 2
等 级:论坛游民
帖 子:16
专家分:27
注 册:2010-4-6
收藏
得分:0 
初学者 来围观 自己也试一试哦!
2010-04-27 09:43
clcaogang
该用户已被删除
收藏
得分:0 
回复 5楼 玩出来的代码
提示: 作者被禁止或删除 内容自动屏蔽
2010-04-27 19:11
lzp311
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-4-20
收藏
得分:0 
回复 4楼 mywaylgh
谢谢了~好方法啊~能告诉我怎么分析这个题吗?感谢大侠了~
2010-04-29 22:44
快速回复:关于数组的题~
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018695 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved