gpt4 book ai didi

c - 如何在C中扫描未知数量的由空格分隔的整数?

转载 作者:行者123 更新时间:2023-11-30 20:10:30 24 4
gpt4 key购买 nike

我正在尝试编写一个程序,用户输入大小为 n 的矩阵xn其中 n 为 10 或更小,程序必须将其旋转 90、180、270 度等。用户将首先输入矩阵有多大(“输入 n:”),然后继续填充矩阵一次输入多个数字,以空格分隔。因此程序会说“输入矩阵的第 0 行:”,用户将输入“1 2 3”、“输入矩阵的第 1 行:”等。

我的问题是,如何编写一个程序,将整数扫描到 n 中xn多维数组,当我不知道有多大时 n直到用户输入为止。我知道scanf("%d %d %d", matrix[0][0], matrix [0][1], matrix[0][2]);如果我事先知道它将是一个 3 x 3 矩阵或 scanf("%d %d %d %d", matrix[0][0], matrix [0][1], matrix[0][2], matrix[0][3]); ,则可以用于第一行对于 4 x 4 矩阵,但在这种情况下,直到编写代码并且用户输入它之后我才知道 n。我现在能想到的是:

printf("Enter n: ");
scanf("%d", &n);

if (n == 3){
printf("Enter row 0 of matrix: );
scanf("%d %d %d", matrix[0][0], matrix [0][1], matrix[0][2]);
printf("Enter row 1 of matrix: );
scanf("%d %d %d", matrix[1][0], matrix [1][1], matrix[1][2]);
printf("Enter row 2 of matrix: );
scanf("%d %d %d", matrix[2][0], matrix [2][1], matrix[2][2]);
// code to rotate 3x3 matrix
}
else if (n == 4){
printf("Enter row 0 of matrix: );
scanf("%d %d %d", matrix[0][0], matrix [0][1], matrix[0][2], matrix[0][3]);
printf("Enter row 1 of matrix: );
scanf("%d %d %d", matrix[1][0], matrix [1][1], matrix[1][2], matrix[1][3]);
printf("Enter row 2 of matrix: );
scanf("%d %d %d", matrix[2][0], matrix [2][1], matrix[2][2], matrix[2][3]);
printf("Enter row 3 of matrix: );
scanf("%d %d %d", matrix[3][0], matrix [3][1], matrix[3][2], matrix[3][3]);
// code to rotate 4x4 matrix
}
else if (n == 5) {
// and so on...
}

但是,我知道这会花费太长时间。有谁可以帮忙吗?谢谢!

最佳答案

所以这会是这样的:

for (int i=0; i<n; i++) {
printf ("Enter data for row %d:\n",i+1);
for (int j=0; j<n; j++)
scanf("%d ",&matrix[i][j]);
}

关于c - 如何在C中扫描未知数量的由空格分隔的整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45253171/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com