作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试编写一个程序,用户输入大小为 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/
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: Combination of List> 我有多个列表,可以是 2 个或 3 个,最多 10 个列表,有多个
我是一名优秀的程序员,十分优秀!