| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 281 人关注过本帖
标题:各位大大 本人系c语言的初学者 问个题啊 希望大家帮帮忙
只看楼主 加入收藏
freedom_he
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-5-31
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
各位大大 本人系c语言的初学者 问个题啊 希望大家帮帮忙
标准蛇行矩阵
输入格式
输入文件“snake.txt”由一行或多行构成,每行由一个正整数N组成。
输出格式
输出文件“result.out”对于每一组数据,输出一个N行的蛇形矩阵。两组输出之间不要额外的空行。矩阵三角中同一行的数字用一个空格分开。行尾不要多余的空格。  
输入样本
2
5
输出样本
1 3  
2
1 3 4 10 11
2 5 9 12
6 8 13
7 14
15
要求:
    关于元素的操作尽量全部用指针完成;
    定义2个函数分别完成矩阵的初始化、矩阵的翻转。
搜索更多相关主题的帖子: c语言 
2010-05-31 17:21
韩明海
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:253
专家分:749
注 册:2010-4-3
收藏
得分:20 
#include<stdio.h>
void computer(int n)
{
    int t;
    int i=0,j=1,a=0,b=0,status=0;
    int num[n][n];
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
          num[i][j]=0;
    }
    j=1;i=0;
    while(1)
    {
        switch(status)
        {
            case 0:
                num[a][b]=j;
                status=1;
                j++;
                break;
            case 1:
                i++;
                a++;
                num[a][b]=j;
                status=2;
                j++;
                break;
            case 2:
                a--;
                b++;
                num[a][b]=j;
                if(a==0)
                {
                    status=3;
                }
                j++;
                break;
            case 3:
                i++;
                b++;
                num[a][b]=j;
                status=4;
                j++;
                break;
            case 4:
                a++;
                b--;
                num[a][b]=j;
                if(b==0)
                {
                    status=1;
                }
                j++;
                break;
            defaul:break;
          }
        if(n==1&&i==0)
        {
            printf("test\n");
            break;
        }
        else if(i==n-1)
        {
            if(i%2==1&&a==0)
                break;
            if(i%2==0&&b==0)
                break;
        }
    }
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
            printf("%d ",num[i][j]);
        printf("\n");
    }
    for(i=0;i<n;i++)
        for(j=i;j<n;j++)
        {
            t=num[i][j];
            num[i][j]=num[j][i];
            num[j][i]=t;
        }
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
            printf("%d ",num[i][j]);
        printf("\n");
    }
}
int main()
{
    int n;
    scanf("%d",&n);
    computer(n);
}
2010-05-31 19:46
韩明海
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:253
专家分:749
注 册:2010-4-3
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册
2010-05-31 19:54
快速回复:各位大大 本人系c语言的初学者 问个题啊 希望大家帮帮忙
数据加载中...
 
   



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

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