gpt4 book ai didi

c - 如何从 C 中的二维数组中删除一行?

转载 作者:行者123 更新时间:2023-12-02 06:53:02 25 4
gpt4 key购买 nike

如何从矩阵中删除特定行,并保持相同的顺序?示例:

1 1 1
2 2 2
3 3 3

假设我需要删除包含所有偶数元素的行,因此删除后它应该如下所示:

1 1 1
3 3 3

我尝试自己编写代码,(条件与我上面提到的不一样!)但实际上并不能正常工作:

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--;
}
}

最佳答案

我没有发现您的代码有任何问题。

在评论中,有人要求您发布“最小、完整且可验证的示例”。这是什么意思。我充实了你的程序,添加了你的 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");
}
}

所以如果你一开始就发布了类似的东西会更好。

但是当我编译并运行这个程序时,它运行得很好。 (我并不感到惊讶——正如我所说,我没有发现任何问题。)

所以无论您的问题是什么,都是您没有向我们展示过的东西。当您说“它实际上无法正常工作”时,您是什么意思?您期望看到什么,而您看到的是什么?

[附言你的问题还有一个问题。在你问得更好之前,我什至不应该回答它。我的这个回答实际上被否决了,以提醒我这个事实。我没有提示;我预料到了。但是,下次请问一个更完整、更容易回答的问题。]

关于c - 如何从 C 中的二维数组中删除一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38540980/

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