嘻嘻嘻哈 发表于 2022-9-7 17:28:04

C入门菜鸟求助

已知两个数组,找出相同元素,请问我这段代码要怎么修改呢?(希望是在原基础上帮忙修改,如果有其他方法的完整代码也可以,谢谢大家!)
#include<stdio.h>
#define M 10
#define N 9
int find_same(int a,int b)
{
        for(int i=0;i<M;i++)
        {
                for(int j=0;j<N;j++)
                {
                  if(a==b)
            {
                   printf("%d",a);
                  }       
                  else if(a<b)       
                   {
                             a;
                   }
              }
      }
        return 0;
}
int main()
{
        int a1={2,5,5,5,6,7,9,10,11,11};
        int b1={2,2,3,5,5,7,7,8,10};
        printf("%d",find_same(a1,b1));
        return 0;

}

傻眼貓咪 发表于 2022-9-7 21:11:17

本帖最后由 傻眼貓咪 于 2022-9-7 21:13 编辑

#include <stdio.h>
#define M 10
#define N 9

void foo(int A, int B) {
    int arr = { 0 };
    for (int i = 0; i < M; ++i)
    for (int j = 0; j < N; ++j) {
      if (!arr] && (A == B)) {
          printf("%d ", A);
          arr] = 1;
      }
    }
}

int main(void) {
    int
      A = { 2, 5, 5, 5, 6, 7, 9, 10, 11, 11 },
      B = { 2, 2, 3, 5, 5, 7, 7, 8, 10 };

    foo(A, B);
    return 0;
}2 5 7 10

fcage 发表于 2022-9-10 12:56:20

#include<stdio.h>
#define M 10
#define N 9
void find_same(int a,int b)
{
    for(int i=0;i<M;i++)
    {
      for(int j=0;j<N;j++)
      {
         if(a==b)
         {
               printf("%d ",a);
               break; //a已经一样的了,直接结束看下一个
         }
        //        else if(a<b)      
        //      {
        //          a; //这没啥用,只是让i+1而已,甚至导致循环跳了一下
        //       }
          }
    while (a==a) i++; //因为给的数组是按顺序排的,一样的在一起,用加i的方法跳过相同给的
    }
}

int main()
{
      int a1={2,5,5,5,6,7,9,10,11,11};
      int b1={2,2,3,5,5,7,7,8,10};
      find_same(a1,b1);
      return 0;

}

页: [1]
查看完整版本: C入门菜鸟求助