如何在C中创建一组随机数

时间:2014-12-14 12:48:32

标签: c

所以我试图编写一个程序,用随机数制作矩阵,用户可以输入行数和列数

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

int main() {
  int c, x, n, m;

  printf("write the number of lines\n");
  scanf("%d", &n);

  for (c = 1; c <= n; c++) {
    x = rand() % 100 + 1;
    printf("%d\n", x);
  }

  return 0;
}

这就是我所拥有的,我需要它来生成列,但我不知道如何。 m将是列数

1 个答案:

答案 0 :(得分:1)

这是实现这一目标的众多方法之一

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

int main()
{
    int i, j, rows, columns;
    int **matrix;

    printf("write the number of rows\n");
    scanf("%d", &rows);
    printf("write the number of columns\n");
    scanf("%d", &columns);

    matrix = malloc(rows * sizeof *matrix);
    if (matrix == NULL)
        return -1;
    for (i = 0 ; i < rows ; i++)
    {
        matrix[i] = malloc(columns * sizeof(int));
        if (matrix[i] == NULL)
        {
            int k;

            for (k = i ; k >= 0 ; k--)
                free(matrix[k]);
            free(matrix);

            return -1;
        }

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

    for (i = 0 ; i < rows ; i++)
    {
        for (j = 0 ; j < columns ; j++)
            printf("%5d", matrix[i][j]);
        printf("\n");
    }

    for (i = 0 ; i < rows ; i++)
    {
        if (matrix[i] == NULL)
            continue;
        free(matrix[i]);
    }
    free(matrix);

    return 0;
}