C++如何产生一个随机矩阵? 要求行列和为固定,假设为n。

如题,产生随机矩阵,要求行列和为同一常数
为方阵

#include<iostream>
#include<ctime>
using namespace std;
int main() //随机生成一个行列数不大于10,元素大小不大于100的二维数组
{
srand((unsigned)time(NULL)); //设定随机数

int n = rand()%10; //行列数n为0-9的数字
while(!n)
{
n = rand()%10;
}
//动态生成数组同时赋值
int **num = new int*[n];
for(int i=0;i<n;i++)
{
num[i] = new int[n];
for(int j=0;j<n;j++)
num[i][j] = rand()%100; //数组元素为0-100的数字
}
//输出数组
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
cout << num[i][j] << " ";
cout << endl;
}
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-07-16

直接产生一个二维数组就可以了吧



int matrix[100][100];


然后用i,j循环为每一个元素赋个随机值

#include<stdio.h>
#include<stdlib.h>

for (int i=0;i<100;i++)
{
    for(int j=0;j<100;j++)
    {
        matrix[i][j]=rand();
    }
}

第2个回答  2013-07-16
random()函数
第3个回答  2013-07-16
循环调用rand()追问

但是行列和固定怎么做

追答

int a[10][10];
int i,j;
for(i = 0; i < 10;i++)
for(j=0;j<10;j++)
a[i][j]=rand();