| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 367 人关注过本帖
标题:杨氏矩阵
取消只看楼主 加入收藏
紫罗兰丹丹
Rank: 2
等 级:论坛游民
威 望:1
帖 子:14
专家分:13
注 册:2014-3-28
结帖率:75%
收藏
已结贴  问题点数:20 回复次数:1 
杨氏矩阵
碰到一个关于杨氏矩阵的题目,就是讲1~9排成3*3的杨氏矩阵,输出所有可能结果,一点头绪都没有,做出的这个程序
#include<iostream>
#include<stdio.h>
using namespace std;

int main()
{
    int a[9];
    int jz[3][3];//定义矩阵
    int k,x,n=0,m=0,y;
    cout <<"请以任意顺序输入1~9:" <<endl;
    for(int i=0;i<=8;i++)//将数组a的元素填入矩阵中
    {
        k=a[i];
        cin >>k;//此为输入数组a的元素
        jz[m][n]=k;
        if(n<3)
            n++;
        else
        {
            n=n-2;
            m++;
        }
        break;
    }
    for(m=0;m<=2;m++)
    {
        for(n=0;n<=2;n++)
        {
            if(jz[m][n]<jz[m+1][n])
            {
                if(jz[m+1][n]<jz[m][n+1])//交换矩阵中的元素位置
                {
                    y=jz[m][n];
                    jz[m][n]=jz[m+1][n];
                    jz[m+1][n]=y;
                }
                else
                {
                    y=jz[m][n];
                    jz[m][n]=jz[m][n+1];
                    jz[m][n+1]=y;
                }
            }
            cout <<jz[m][n] <<" ";//输出矩阵
        }
        cout <<endl;
    }
}

问题是编译连接都无错,但是在运行的时候矩阵中元素没有发生交换,是什么原因?
这个思路有问题,不能输出所有结果,但是好像随机数函数不好用,怎么办?
搜索更多相关主题的帖子: include 元素 
2014-03-28 17:20
紫罗兰丹丹
Rank: 2
等 级:论坛游民
威 望:1
帖 子:14
专家分:13
注 册:2014-3-28
收藏
得分:0 
回复 2楼 天使梦魔
试着把n<3改成n<2,结果还是不会进行矩阵中的元素交换。。比如,输入3 4 7 9 1 6 5 2 8,输出就是
3 4 7
9 1 6
5 2 8.。
怎样改能让矩阵元素进行交换?
2014-03-28 23:20
快速回复:杨氏矩阵
数据加载中...
 
   



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

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