如何用C/C++表示一系列满足要求的n*5的矩阵?

来源:百度知道 编辑:UC知道 时间:2024/05/17 04:13:59
矩阵的要求是每行只有1个元素是1,期于都是0,要把所有符合条件的矩阵都表示出来~其中n是一个变量

#include <iostream>
#include <algorithm>
using namespace std;

void print(int* beg, int x, int y)
{
int* p = beg;
int i = 1;

while(p != beg + x*y)
{
cout << *p << ' ';
if(p == beg + y*i - 1)
{
cout << '\n';
++i;
}
++p;
}
cout << endl;
}

void per_base(int* beg, int x, int y, int x1)
{
if(x1 > 0)
{
while(prev_permutation(beg + y*(x1-1), beg + y*x1))
{
print(beg, x, y);
per_base(beg, x, y, x1-1);
}
}
}

void permute(int* beg, int x, int y)
{
print(beg, x, y);
per_base(beg, x, y, x-1);
per_base(beg, x, y, x);
}

int main()
{
const int x = 2, y = 5; // 把x改成你要的n

int a[x][y] = {0};
for(int i = 0; i < x; ++i)
{
a[i][0] = 1;
}

in