C:如何在矩阵中使用scanf读取多个值

C:如何在矩阵中使用scanf读取多个值,c,matrix,scanf,C,Matrix,Scanf,嗨,我正试图为用户输入矩阵大小和值编写一个代码。我了解了设置矩阵大小和值的技巧,但我想一次读取一行,这样我就不必每次输入一个值后都按enter键。这是到目前为止我的代码。谢谢 int row, col, i, j; int mat[10][10]; printf("Enter number of rows: "); scanf("%d", &row); printf("Enter number of columns: "); scanf("%d", &col); for (i

嗨,我正试图为用户输入矩阵大小和值编写一个代码。我了解了设置矩阵大小和值的技巧,但我想一次读取一行,这样我就不必每次输入一个值后都按enter键。这是到目前为止我的代码。谢谢

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

printf("Enter number of rows: ");
scanf("%d", &row);
printf("Enter number of columns: ");
scanf("%d", &col);

for (i = 0; i < row; ++i) {
    for (j = 0; j < col; ++j) {
        scanf("%d", &mat[i][j]);
    }
}
printf("\nHere is your matrix:\n");   
for (i = 0; i < row; i++) {  
    for (j = 0; j < col; j++) {  
        printf("%d\t", mat[i][j]);  
    }  
    printf("\n");  
}  
int行,列,i,j;
int mat[10][10];;
printf(“输入行数:”);
scanf(“%d”行和第行);
printf(“输入列数:”);
scanf(“%d”列和列);
对于(i=0;i
在C内存中连续分配

这些值将按行存储在数组中,因此使用空格而不是新行可以工作

即使在一行中键入所有元素,并用空格分隔,它也会按行存储

所以如果 行=3列=3列

i/p=123456789 矩阵将是

1 2 3

4 5 6

7 8 9

我想一次读一行,这样就不必每次都按enter键

您列出的代码可以这样工作!这就是scanf的工作原理


您可以在每个数字或每行按一次Enter键(您应该使用空格或制表符来分隔数字),甚至在输入整个矩阵后,也可以尝试一下

您可以使用空格分隔符输入。请尝试在单行中输入例如
123445
。。。用
scanf
读取的
%d”
格式实际上是以空格分隔的十进制数。换行符是一个空白,就像普通空格一样。你也可以在StackOverflow上搜索C array scanf用户输入,并给出1000个例子
:)
哦,这很有效。我从没想过那样。谢谢为了在调试代码时减少键入,您也可以简单地创建一个包含值的文本文件,并将其重定向为代码的输入(例如
/yourprog
),您的解释与此无关:循环中值的转换顺序完全由代码决定,而不是内存的布局方式。由
scanf(“%d”,…)
转换的值可以用任意数量的空格字符分隔:空格、制表符、换行符,甚至表单提要和垂直制表符。行、列和所有矩阵值的值可以在一行中键入,也可以分散在多行中键入,这并不重要。@sKrellish:您甚至可以在一行中键入
3+3+1+2+3+4+5+6+7+8+9