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

标签 c arrays matrix

#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/

相关文章:

c - 如何在 ANSI C 中链接模板头?

c++ - 这行代码是什么意思*((int*)(0))=1;?

c - RSA_private_encrypt 总是失败

c - 矩阵的结构

swift - 如何检测触摸了哪个 SKSpriteNode

c - 是什么导致我的二十一点程序在执行任何操作之前崩溃?

php - file_get_contents 的解析结果 ('php://input' )

arrays - 如何将 Array{Float64, 1} 转换为 float 在 Julia 中?

c - 零长度数组与指针

r - 在 R 中绘制给定转移矩阵的马尔可夫链