所以我试图编写一个程序,用随机数制作矩阵,用户可以输入行数和列数
#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将是列数
答案 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;
}