Leo*_*nko 2 c arrays sorting 2d
如何从矩阵中删除特定行并保持相同的顺序?例子:
1 1 1
2 2 2
3 3 3
Run Code Online (Sandbox Code Playgroud)
假设我需要删除包含所有偶数元素的行,因此删除后它应该如下所示:
1 1 1
3 3 3
Run Code Online (Sandbox Code Playgroud)
我尝试自己编写代码(条件与我上面提到的不一样!)但它实际上无法正常工作:
for (i = 0 ; i < no_of_rows ; i++) {
if (abs(prosjeci[i] - prosjek) < 0.1) { /* condition */
for (k = i ; k < no_of_rows - 1 ; k++) {
for (j = 0 ; j < no_of_columns ; j++) {
matrica[k][j] = matrica[k+1][j];
}
}
i--;
no_of_rows--;
}
}
Run Code Online (Sandbox Code Playgroud)
我没有看到你的代码有什么问题。
在评论中,有人要求您发布一个“最小、完整且可验证的示例”。这就是这意味着什么。我充实了您的程序,添加了数组和其他变量的声明和初始化matrica,更改条件以匹配您的示例,并在最后打印出数组。我最终得到了这个:
#include <stdio.h>
int matrica[][3] = {
{1, 1, 1},
{2, 2, 2},
{3, 3, 3}
};
int no_of_columns = 3;
int no_of_rows = 3;
int main()
{
int i, j, k;
for (i = 0 ; i < no_of_rows ; i++) {
if (matrica[i][0] % 2 == 0) { /* even row */
for (k = i ; k < no_of_rows - 1 ; k++) {
for (j = 0 ; j < no_of_columns ; j++) {
matrica[k][j] = matrica[k+1][j];
}
}
i--;
no_of_rows--;
}
}
for (i = 0 ; i < no_of_rows ; i++) {
for (j = 0 ; j < no_of_columns ; j++) {
printf("%d ", matrica[i][j]);
}
printf("\n");
}
}
Run Code Online (Sandbox Code Playgroud)
因此,如果您一开始就发布类似的内容,那就更好了。
但是当我编译并运行这个程序时,它运行得很好。(我并不感到惊讶——正如我所说,我不认为这有什么问题。)
所以无论你的问题是什么,问题都在于你没有向我们展示过。当您说“它实际上无法正常工作”时,您的意思是什么?您期望看到什么,而您看到了什么?
[PS:你的问题还有一个问题。在你问得更好之前,我什至不应该回答它。我的这个答案实际上被否决了,以提醒我这个事实。我没有抱怨; 我预料到了。但请下次提出更完整且可回答的问题。]
| 归档时间: |
|
| 查看次数: |
15511 次 |
| 最近记录: |