杨氏矩阵
碰到一个关于杨氏矩阵的题目,就是讲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;
}
}
问题是编译连接都无错,但是在运行的时候矩阵中元素没有发生交换,是什么原因?
这个思路有问题,不能输出所有结果,但是好像随机数函数不好用,怎么办?