C 在用户输入的多个名称中查找第一个重复名称

C 在用户输入的多个名称中查找第一个重复名称,c,C,有一个由社会工作者组织的早餐会。有许多人排队领取食品袋。迅速找出排队领取食品包的第一个人 给定 亚当,宾尼,索海尔,克里希纳,玛亚克,索海尔,亚当 输出应为: 苏海尔 我无法用c语言解决这个问题。 有人能解释一下怎么办吗 这是我的代码: 包括 int main { int n,i,j; char-str[20][20]; 扫描%d,&n; 因为i=0;i它可以给你一些指示: #include <stdio.h> #include <stdlib.h> #include &

有一个由社会工作者组织的早餐会。有许多人排队领取食品袋。迅速找出排队领取食品包的第一个人

给定

亚当,宾尼,索海尔,克里希纳,玛亚克,索海尔,亚当

输出应为:

苏海尔

我无法用c语言解决这个问题。 有人能解释一下怎么办吗

这是我的代码:

包括 int main { int n,i,j; char-str[20][20]; 扫描%d,&n;
因为i=0;i它可以给你一些指示:

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

typedef struct PersonInfo
{
  char *name;
  int number;
} person_info;

void check(person_info arr[], size_t size);

int main()
{
  char *arr_debug[20] = {"Adam", "Binny", "Sohail", "Krishna", "Mayank", "Sohail", "Adam"};
  int i = 0;
  person_info arr[7];
  size_t size = sizeof(arr)/sizeof(arr[0]);
  person_info temp;

  for (i = 0; i < size; i++) {
    // scanf("%s", temp.name);
    temp.name = arr_debug[i];
    temp.number = i + 1; // start counting from 1
    arr[i] = temp;
  }

  check(arr, size);

  return 0;
}

void check(person_info arr[], size_t size) {
  char *temp_name;
  int nums[size]; // filled with 0s
  int num = 0;

  for (int i = 0; i < size; i++) {
    for (int j = 0; j < size; j++) {
      if (strcmp(arr[i].name, arr[j].name) == 0 && arr[i].number < arr[j].number) {
        nums[num] = arr[j].number;
        num++;
        //store the number of the person
      }
    }
  }


  //find the earliest occurence
  int earliest = nums[0];
  for (int i = 1; i < size; i++) {
    if (earliest > nums[i] && nums[i] != 0) {
      earliest = nums[i];
    }
  }

  //find the name associated to the number
  for (int i = 0; i < size; i++) {
    if (arr[i].number == earliest) {
      temp_name = arr[i].name;
      printf("%s \n", temp_name);
    }
  }
}

请尝试解决这个问题,并告诉我们您遇到了什么困难。1.您知道如何制作像Hello world这样的简单C程序/2.您知道如何从用户处获取字符串输入吗?/3.您知道如何将该字符串存储在字符串数组中吗?/4.您知道如何使用或制作其他数据结构,如哈希表或二叉树-是这样吗在这个赋值的范围内,或者你能用数组做一些简单的事情吗?ifstr[i]==str[j]永远不会为真,因为你测试两个不同的指针是否相等,你想要if!strcmpstr[i],str[j],所以你永远不会打印f