| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 15156 人关注过本帖, 1 人收藏
标题:蛇形矩阵
只看楼主 加入收藏
浅水无殇
Rank: 2
等 级:论坛游民
帖 子:123
专家分:75
注 册:2012-11-23
结帖率:100%
收藏(1)
已结贴  问题点数:15 回复次数:39 
蛇形矩阵
题目描述:
蛇形矩阵是从1开始的自然数依次排列成的一个矩阵上三角形
输入描述:
矩阵的大小N(N<20)
输出描述:
输出一个蛇形矩阵,注意:每行行末没有空格,最后一行没有换行。
样式输入:
5
样式输出:
1 3 6 10 15
2 5 9 14
4 8 13
7 12
11

    如果   n的大小不限定。。。。。。用是指针还是别的。。。。可以么。。。。。。
搜索更多相关主题的帖子: 矩阵 自然数 三角形 
2012-12-27 12:50
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:5 
“每行行末没有空格,最后一行没有换行。” --- 这种无谓的要求会使得代码变丑

g++4.7.2(加编译参数-std=c99)编译测试通过
程序代码:
#include <stdio.h>

void foo( size_t n )
{
    for( size_t r=0; r<n; ++r )
    {
        for( size_t c=0; c<n-r; ++c )
            printf( "%d%s", 1+(c+r)*(c+3+r)/2-r, r==n-1?"":(c!=n-r-1?" ":"\n") );
    }
}

int main()
{
    foo(5);
}

2012-12-27 13:42
a151141
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:197
专家分:680
注 册:2012-10-19
收藏
得分:0 
程序如下:
#include<stdio.h>
#define N 20
main()
{
    int a[N][N]={0};
    int t,j,k,l,m,n,i;
    printf("请输入矩阵的大小:\n");
    scanf("%d",&t);l=t;
    for(j=0;j<t;j++)
    {
        m=j+1;n=j;
        for(k=0;k<l;k++)
        {
            if(k>0)
                a[j][k]=a[j][k-1]+m;
            else if(j>0) a[j][k]=a[j-1][k]+n;
            else  a[j][k]=1;
            m++;
            printf("%4d",a[j][k]);
        }
        l--;
        printf("\n");
    }
}

看看吧,不容易,编了一大会呢
收到的鲜花

世界上幸福的事就是抓到一只羊,更幸福的事就是抓到两只羊……
2012-12-27 14:19
a151141
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:197
专家分:680
注 册:2012-10-19
收藏
得分:0 
希望还可以

世界上幸福的事就是抓到一只羊,更幸福的事就是抓到两只羊……
2012-12-27 14:19
w527705090
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:11
帖 子:441
专家分:1882
注 册:2011-6-28
收藏
得分:0 
程序代码:
#include<stdio.h>
void main()
{
    int i,j=1,k,b,n=10;
    int m[10][10];
    for(i=2;i<n;i++)
    {
        k=0;
        b=i;
        while(b>=0){
            m[b--][k++]=j++;
        }
    }
    for(int h=0;h<10;h++){
        for(int g=0;g<10;g++){
            printf("%d",m[h][g]);
        }
        printf("\n");
    }
}          
//编译没有 通过。。。不知道什么原因 。。。。你的要求我只符和了一个 那就是输出的顺序

有心者,千方百计;无心者,千难万难。
2012-12-27 14:50
ksddah
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:53
专家分:135
注 册:2012-12-11
收藏
得分:0 
程序代码:
#include<stdio.h>
#define M 20

void main()
{
    int a[M][M];
    int count=1;
    int i,j,n;
    int k=0;
    printf("Please input n(n<=M):");
    scanf("%d",&n);
    while(count<=n*(n+1)/2)
    {
        for(i=k,j=0;i>=0,j<=k;i--,j++)
        {
            a[i][j]=count++;
        }
        k++;
    }
    for(i=0;i<n;i++)
    {
        for(j=0;j<n-i;j++)
        {
            printf("%4d",a[i][j]);
        }
        printf("\n");
    }
}
2012-12-27 15:23
姻脂梦
Rank: 6Rank: 6
等 级:侠之大者
帖 子:264
专家分:424
注 册:2012-7-3
收藏
得分:0 
6楼可以
2012-12-27 15:31
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:10 
我也写了个
程序代码:
#include <stdio.h>
int main()
{
    int a[20] = {1};
    int n;
    int i, j;
    scanf("%d", &n);
    for (i = 0;i < n;++i)
        if (!i)    printf("%-3d", a[i]);
        else    printf("%-3d", a[i] = a[i-1]+i+1);
    printf("\n");
    for (i = 1;i < n;++i)
    {
        for (j = 0;j < n-i;++j)
            printf("%-3d", a[j] = a[j+1]-1);
        printf("\n");
    }
    return 0;
}


[fly]存在即是合理[/fly]
2012-12-27 16:17
浅水无殇
Rank: 2
等 级:论坛游民
帖 子:123
专家分:75
注 册:2012-11-23
收藏
得分:0 
赞8楼的一个。。。。

wula wual
2012-12-27 16:30
浅水无殇
Rank: 2
等 级:论坛游民
帖 子:123
专家分:75
注 册:2012-11-23
收藏
得分:0 
但是不够美观。。。当n超出20后。。。。就不好看啦。。。

wula wual
2012-12-27 16:32
快速回复:蛇形矩阵
数据加载中...
 
   



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

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