在C中创建一个基本矩阵(由用户输入!)

NLe*_*Led 8 c matrix

我试图让用户在矩阵中输入他们想要的列数和行数,然后在矩阵中输入值......我将让他们一次插入一行数字.

我该如何创建这样的功能?

#include<stdio.h>
main(){

int mat[10][10],i,j;

for(i=0;i<2;i++)
  for(j=0;j<2;j++){
  scanf("%d",&mat[i][j]);
  } 
for(i=0;i<2;i++)
  for(j=0;j<2;j++)
  printf("%d",mat[i][j]);

}
Run Code Online (Sandbox Code Playgroud)

这适用于输入数字,但它将它们全部显示在一行...这里的问题是我不知道用户想要多少列或行,所以我不能打印出%d%d%d矩阵形式......

有什么想法吗?

谢谢 :)

Jac*_*cob 12

以下怎么样?

第一询问的行和列的数量的用户,存储在发言权,nrowsncols(即scanf("%d", &nrows);),然后用于2D阵列分配内存大小的NROWS X NCOLS.因此,您可以拥有一个由用户指定的大小的矩阵,而不是固定在您硬编码的某个维度上!

然后for(i = 0;i < nrows; ++i) ...以相同的方式存储元素并以相同的方式显示元素,除了在每一行之后抛出换行符,即

for(i = 0; i < nrows; ++i)
{
   for(j = 0; j < ncols ; ++j) 
   {
      printf("%d\t",mat[i][j]);
   }
printf("\n");
}
Run Code Online (Sandbox Code Playgroud)