gpt4 book ai didi

c - 在 c 中将随机数放入我的矩阵中时丢失了

转载 作者:行者123 更新时间:2023-11-30 21:09:13 25 4
gpt4 key购买 nike

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define COL 20
#define ROW 20
void PopulateArray2DUnique(int [][COL], int, int , int , int );
void DisplayArray2D(int [][COL], int, int );


int main()
{
int matrix[ROW][COL], r ,c ,i , j;
int max = 400;
int min = 0;


printf("Enter the amount of rows and cols you would like\n Must be under 20!\n");
scanf("%d%d\n",&r,&c);

PopulateArray2DUnique(matrix,r,c,min,max);
DisplayArray2D(matrix,r,c);



return 0;
}

void PopulateArray2DUnique(int matrix[][COL], int r,int c, int min, int max)
{


int i, j;



srand(time(NULL));
for(i = 0; i<r; i++)
{
for(j = 0; j<c; j++)
{
matrix[i][j] = rand() % (max + min)+min;
}
}

}

void DisplayArray2D(int matrix[][COL], int r,int c)
{
int i,j;
for(i = 0; i < r; i++)
{
for(j = 0; j < c; j++)
{
printf("%4d ", matrix[i][j]);
}
printf("\n");
}


}

这个程序所做的(到目前为止)是要求用户输入矩阵的大小,然后函数 PopulateArray2DUnique 为矩阵生成随机值!

要求我输入两次行和列的大小

最佳答案

srand(time(NULL));

for(i = 0; i < rowsize; i++)
{
for(j = 0; j < colsize; j++)
{
matrix[i][j] = (rand() % (max-min)) + min;
}
}

给定 rand() % N 将生成从 0N-1 的数字,因此不要使用 max 我们可以使用 (max+1) 来使其包含在内,我们需要生成从 minmax 的数字,首先我们减去min 获取从 min-minmax-min 的数字,这将产生从 0 的数字>max-min,然后将 min 添加到结果中,以获得从 minmax

的范围
(rand() % ((max+1)-min)) + min

最后以表格方式打印矩阵

for(i = 0; i < rowsize; i++)
{
for(j = 0; j < colsize; j++)
{
printf("%4d ", matrix[i][j]);
}
printf("\n");
}

读取用户的输入应该像这样,不断询问直到有效输入

r=20;
while (r <= 0 || r >= 20)
{
printf("Enter how many rows (under 20) then press Enter: ");
scanf("%d", &r);
}

c=20;
while (c <= 0 || c >= 20)
{
printf("Enter how many columns (under 20) then press Enter: ");
scanf("%d", &c);
}

关于c - 在 c 中将随机数放入我的矩阵中时丢失了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35301003/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com