c - 从 C 中的多维数组中提取一行

标签 c arrays multidimensional-array

好吧,看来我的问题写得不够好,所以让我们再做一次:

我正在尝试编写一个函数,该函数将接受一个多维数组 int 和另一个 int 参数: int ListNum( int tab[][], int n).
这个函数的目标是获取所述数组并提取第一行并返回其元素的列表,不重复,就像您猜到的“int tab [][]”是我们的数组,“int n”是一行的大小,我只需要提取数组的第一行,所以我猜这就是我的参数中需要的所有信息。 ..

这是它应该如何工作的示例:这是我们的数组 -> 选项卡[7][2]:
| 1 | 3 | 1 | 2 | 0 | 2 | 2 |
| 2 | 1 | 1 | 1 | 0 | 2 | 3 |

结果将位于一个新数组中,如下所示: | 1 | 3 | 2 | 0 |

现在我的问题是我不太擅长编码,我大概知道我应该做什么,但我仍然无法找到正确的解决方案。这是我到目前为止所做的:

int listNum(int tab[][], int n){
int i, j, v=0, temp, *x;
x=malloc(n*sizeof(int));
if(x==NULL){
    printf("Error allocation memory !\n");
    return -1;
}
x[0]=tab[0][0];
for(i=0;i<n;i++){
    temp=tab[i][0];
    for(j=0;j<n;j++){
        if (temp==x[j]){
        i++;
        break;
        }
    }
x[v+1]=tab[i][0];
}
return x;
}

但是,是的,这段代码有各种各样的错误,但我不知道如何修复它,所以真的......任何帮助将不胜感激!

最佳答案

虽然我没有得到你的问题..但是我的理解是“你只需要打印(?)多维数组的第一行...值不应该重复...”

你没有告诉你是从用户那里读取MDarray还是从文件中读取MDarray???

如果每次都是来自用户..不要在第一个地方重复它...在一行中仅存储一个值一次。并打印一个简单的[0][i]。

如果来自文件......这里是代码......

    firstline()
    {  
        for(i=0;i<n;i++) if(a[0][i]!='\O') 
        {
           printf("\t%c",a[0][i];
           for(j=i;j<n;j++) 
            if(a[0][i]==a[0][j]) 
               a[0][j]= '\0' ;
        }
     }

如果我误解了这个问题...请澄清...

PS:我不会传递任何参数,假设所有参数都已全局声明***

更新

是的,明白了...尝试上面的代码...但是在您的代码中:

      x [ 0 ] = t a b [ 0 ] [ 0 ] ; 
      f o r ( i = 0 ; i < n ; i + + )
       { t emp = t a b [ i ] [ 0 ] ;    /* Ti0 is the
        column... it should be T[0][i] for 1st row*/
      f o r ( j = 0 ; j < n ; j + + ) 
       { i f ( t emp = = x [ j ] )
       { i + + ; b r e a k ; } } 
     x [ v + 1 ] = t a b [ i ] [ 0 ] ; //tab[0][i]

关于c - 从 C 中的多维数组中提取一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29703776/

相关文章:

c - 如何匿名申报

c - fork() 如何停止创建子进程?

javascript - 函数返回值是否可以作为数组键?

java - 在 Java 中打印数组

python - 将 numpy 2D 数组中的字符串元素转换为数组并生成 3D 数组

c - 在c中返回一个多维数组

c - 如何将一串数字解析为整数数组?

javascript - 将对象数组中两个属性的唯一值存储到单个数组中

javascript - 如何在 JavaScript 中对多维对象进行排序

c - 将指向 char 的指针转换为指向 int 的指针后出现意外的字节顺序