我尝试让用户输入他们想要的矩阵中的列数和行数,然后在矩阵中输入值...我将让他们一次插入一行数字。
如何创建这样的函数?
#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]);
}
这适用于输入数字,但是它在一行中显示它们...这里的问题是我不知道用户想要多少列或行,所以我不能以矩阵形式打印出% d % d % d ...
有什么想法吗?
谢谢:)
8条答案
按热度按时间nwwlzxa71#
下面这些怎么样?
首先询问用户行数和列数,将其存储在
nrows
和ncols
(即scanf("%d", &nrows);
)中,然后存储在allocate memory for a 2D array中,大小为 nrows x ncols。这样,您就可以得到一个大小由用户指定的矩阵,而不是固定在您硬编码的某个维度上!然后用
for(i = 0;i < nrows; ++i) ...
存储元素,并以相同的方式显示元素,只是在每行后添加换行符,即rsaldnfx2#
您需要动态分配基准表。例如:
这将创建一个线性数组来保存矩阵。此时您可以决定是先访问列还是先访问行。我建议您创建一个快速宏来计算矩阵中的正确偏移量。
w6mmgewl3#
需要一个
lb3vh1jj4#
wa7juj8i5#
这就是我的答案
我只是选择一个近似值的行和列。我所选择的行或列将不会交叉的值。然后我扫描矩阵元素,然后使其在矩阵大小。
4nkexdtk6#
}
vi4fp9gy7#
我希望下面的代码将为您工作。
polhcujo8#