| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1118 人关注过本帖
标题:求一个盘旋蛇形的矩阵的代码
只看楼主 加入收藏
wzt3204885
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2012-12-1
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:8 
求一个盘旋蛇形的矩阵的代码
Description

传说中的印度人能够驯服毒蛇(viper),并懂得吹奏乐器使蛇翩翩起舞。在小人书或者电视电影上看到蛇总喜欢盘旋成一个螺旋饼状。蛇越长,盘旋所得的饼越大。

Input

有多个测试用例,每个用例一行。
 每个测试用例只有一个整数n( 0 < n < 100 ),表示蛇盘旋所得饼状图形的边长。
 最后一个用例n=-1,不用处理。

Output

输出n*n的盘旋数字矩阵。数字之间用一个空格分隔。每个测试用例的结果之间输出一个空行。

Sample Input

3
 4
 -1

Sample Output

1 2 3
 8 9 4
 7 6 5
 
1 2 3 4
 12 13 14 5
 11 16 15 6
 10 9 8 7
搜索更多相关主题的帖子: 印度人 小人书 viper 
2013-01-03 19:05
朱三哥
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:311
专家分:359
注 册:2012-12-11
收藏
得分:0 
对题目意思理解不来
饼状 ?边长?
起舞,饼状?
不明白

哥,破你无线很难的,不要老是改,少看路由器上的灯,你会死啊
2013-01-03 19:31
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:15 
程序代码:
#include <stdio.h>
#define N 100
int n;
int a[N][N];
int main(void)
{
    int i, j, k, num, temp;
    while (scanf("%d", &n), n != -1)
    {
        num = 0;temp = n;
        for (i = 0;i < temp;--temp, ++i)
        {
            for (j = i;j < temp;a[i][j++] = ++num);
            for (--j, k = i+1;k < temp;a[k++][j] = ++num);
            for (--k;--j >= i;a[k][j] = ++num);
            for (++j;--k > i;a[k][j] = ++num);
        }
        for (i = 0;i < n;++i, puts(""))
        for (j = 0;j < n;++j)
            printf("%5d", a[i][j]);
    }
    return 0;
}
收到的鲜花
  • wzt32048852013-01-04 18:58 送鲜花  3朵   附言:简单明了,好厉害


[fly]存在即是合理[/fly]
2013-01-03 20:16
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
楼上威武

                                         
===========深入<----------------->浅出============
2013-01-03 20:18
hit小龙
Rank: 6Rank: 6
等 级:侠之大者
帖 子:173
专家分:462
注 册:2012-12-6
收藏
得分:0 
好样的

我上次也才在一题集上看到
2013-01-03 21:38
ksddah
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:53
专家分:135
注 册:2012-12-11
收藏
得分:5 
程序代码:
#include<cstdio>
void main()
{
    const int max=50;
    int a[max][max];
    int n;               //行数
    printf("正整数n=");
    scanf("%d",&n);
    int k=0;             //层数
    int counter=1;       //元素序号
    
    while(counter<=n*n)
    {
        for(int i=k,j=k;j<n-k;j++)          //right
        {
            a[i][j]=counter++;
        }
        for(int i=k+1,j=n-k-1;i<n-k;i++)    //down
        {
            a[i][j]=counter++;
        }
        for(int i=n-k-1,j=n-k-2;j>=k;j--)     //left
        {
            a[i][j]=counter++;
        }
        for(int i=n-k-2,j=k;i>k;i--)          //up
        { 
            a[i][j]=counter++;
        }
      k++;
    }
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
        {
            printf("%4d ",a[i][j]);
        }
       printf("\n");
    }
}
2013-01-03 21:41
tompobing
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:260
专家分:809
注 册:2012-12-9
收藏
得分:0 
#include <stdio.h>
#define N 100
main()
{
    int a[N][N],i,j,k=0,m,n;
    printf("please enter n(n<100):\n");
    scanf("%d",&n);
    if(n%2==0)  m=n/2;
    else m=n/2+1;
    for(i=0;i<m;i++)
    {
        for(j=i;j<n-i;j++)
        {k++;a[i][j]=k;}
        for(j=i+1;j<n-i;j++)
        {k++;a[j][n-i-1]=k;}
        for(j=n-i-2;j>=i;j--)
        {k++;a[n-i-1][j]=k;}
        for(j=n-i-2;j>=i+1;j--)
        {k++;a[j][i]=k;}
    }
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
        printf("%5d",a[i][j]);
        printf("\n");
    }
}
收到的鲜花
  • wzt32048852013-01-04 19:01 送鲜花  2朵  
2013-01-03 22:34
wzt3204885
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2012-12-1
收藏
得分:0 
回复 5楼 hit小龙
在哪里看到的?能给个链接吗?
2013-01-04 19:02
h1023417614
Rank: 4
等 级:禁止访问
帖 子:211
专家分:237
注 册:2012-11-30
收藏
得分:0 
2013-01-04 19:13
快速回复:求一个盘旋蛇形的矩阵的代码
数据加载中...
 
   



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

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