在 C 中创建一个基本矩阵(由用户输入!)
我试图要求用户在矩阵中输入他们想要的列数和行数,然后在矩阵中输入值...我将让他们一次插入一行数字。
我怎样才能创建这样的功能?
#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]);
}
这适用于输入数字,但它会将它们全部显示在一行中...这里的问题是我不知道用户想要多少列或行,所以我无法在 a 中打印出 %d %d %d矩阵形式...
有什么想法吗?
谢谢 :)
I'm trying to ask the user to enter the number of columns and rows they want in a matrix, and then enter the values in the matrix... I'm going to let them insert numbers one row at a time.
How can I create such function ?
#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]);
}
This works for entering the numbers, but it displays them all in one line... The issue here is that I don't know how many columns or rows the user wants, so I cant print out %d %d %d in a matrix form...
Any thoughts?
Thanks :)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
下面的怎么样?
首先询问用户行数和列数,将其存储在
nrows
和ncols
中(即scanf("%d", &nrows) ;
),然后分配内存大小为 nrows x ncols 的二维数组。因此,您可以拥有一个由用户指定大小的矩阵,而不是固定在您硬编码的某个维度!然后使用
for(i = 0;i < nrows; ++i) ...
存储元素并以相同的方式显示元素,除了在每行后面添加换行符,即How about the following?
First ask the user for the number of rows and columns, store that in say,
nrows
andncols
(i.e.scanf("%d", &nrows);
) and then allocate memory for a 2D array of size nrows x ncols. Thus you can have a matrix of a size specified by the user, and not fixed at some dimension you've hardcoded!Then store the elements with
for(i = 0;i < nrows; ++i) ...
and display the elements in the same way except you throw in newlines after every row, i.e.您需要动态分配矩阵。例如:
这将创建一个可以容纳矩阵的线性数组。此时您可以决定是先访问列还是先行。我建议制作一个快速宏来计算矩阵中的正确偏移量。
You need to dynamically allocate your matrix. For instance:
This creates a linear array which can hold the matrix. At this point you can decide whether you want to access it column or row first. I would suggest making a quick macro which calculates the correct offset in the matrix.
需要一个
need a
这是我的答案,
我只是为行和列选择一个近似值。我选择的行或列不会交叉该值。然后我扫描矩阵元素,然后将其设置为矩阵大小。
This is my answer
I just choose an approximate value for the row and column. My selected row or column will not cross the value.and then I scan the matrix element then make it in matrix size.
}
}
我希望下面的代码对您有用。
I hope the below code will work for you.