【问题标题】:How to compare jagged array to another array in C?如何将锯齿状数组与C中的另一个数组进行比较?
【发布时间】:2021-02-15 18:06:19
【问题描述】:

我一直在尝试将锯齿状数组用于我的项目,同时这只是一个测试,此外我将在我的项目中使用它。问题如下我如何比较每个数组中的每个元素,所以在下面的代码中我有三个数组,在它们之后,我还有一个将用于与第一个数组进行比较,这是我到目前为止所拥有的。

#include <stdio.h>
#include <stdlib.h>

int main(){

  int row0[4] = {0,1,3,0};
  int row1[4] = {5,6,9,10};
  int row2[4] = {9,0,1,10};

  int aux[4] = {9,6,9,10};


  int *result[3] = {row0,row1,row2};

  int size[3] = {4,4,4}, k =0;

  for (int i = 0; i < 3; i++) {

    int *ptr = result[i];

    for (int j = 0; j < size[k]; j++) {


     if(ptr[j] == aux[j])
     {
       printf("%d\n",ptr[j]);
     }

     ptr++;
   }
   printf("\n");
   k++;

   result[i]++;
  }

  return 0;
}

它的结果是 5,但我想遍历以 5 开头的数组中的所有值,以找出所有其他值是否相等,换句话说,我想知道哪个数组等于“aux”数组。

【问题讨论】:

    标签: c jagged-arrays


    【解决方案1】:

    你有(内)循环:

    int *ptr = result[i];
    for (int j = 0; j < size[k]; j++)
    {
         if(ptr[j] == aux[j])
         {
           printf("%d\n",ptr[j]);
         }
         ptr++;
    }
    

    由于您同时增加了jptr,因此您进行了太多的增量操作。最好删除ptr++; 行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-18
      • 2011-09-13
      相关资源
      最近更新 更多