Language: C

void insert(char *);
void find(char *);
int h(int);
int h2(int);
int h(char *, int);
 
int ins;
char dict[N][13];
 
int main()
{
  int n, i;
  char str[13];
   
  scanf("%d", &n);
  for(i=0; i<N; i++)
    {
      strcpy(dict[i], "\0");
    }
 
  for(i=0; i<n; i++)
    {
      scanf("%s", str);
       
      if(strcmp(str, "insert") == 0)
    {
      scanf("%s", str);
      insert(str);
    }
      else if(strcmp(str, "find") == 0)
    {
      scanf("%s", str);
      find(str);
    }
    }
  return 0;
}
 
void insert(char *str)
{
  int i=0;
 
  while(strcmp(dict[h(str, i)], "\0") != 0)
    {
      i++;
    }
  strcpy(dict[h(str, i)], str);
  ins = i;
  //printf("%d\n", hash(str, i));
}
void find(char *str)
{
  int i=0;
 
  while(1)
    {
      if(strcmp(dict[h(str, i)], "\0") == 0)
    {
      printf("no\n");
      break;
    }
      else if(strcmp(dict[h(str, i)], str) == 0)
    {
      printf("yes\n");
      break;
    }
      i++;
    }
}
int h(int k)
{
  return k % N;
}
int h2(int k)
{
  return 1 + k%(N-1);
}
int h(char *str, int i)
{
  int j, k=0, n=1;
  for(j=0; str[j]!='\0'; j++)
    {
      if(str[j] == 'A')
    {
      k += n*0;
    }
      else if(str[j] == 'C')
    {
      k += n*1;
    }
      else if(str[j] == 'G')
    {
      k += n*2;
    }
      else if(str[j] == 'T')
    {
      k += n*3;
    }
      n *= 4;
    }

   
  return (h(k) + i*h2(k))%N;
}

Compiler output:
main.c:5:5: error: conflicting types for 'h'; have 'int(char *, int)'
    5 | int h(char *, int);
      |     ^
main.c:3:5: note: previous declaration of 'h' with type 'int(int)'
    3 | int h(int);
      |     ^
main.c:8:11: error: 'N' undeclared here (not in a function)
    8 | char dict[N][13];
      |           ^
main.c: In function 'main':
main.c:15:3: error: implicit declaration of function 'scanf' [-Wimplicit-function-declaration]
   15 |   scanf("%d", &n);
      |   ^~~~~
main.c:1:1: note: include '<stdio.h>' or provide a declaration of 'scanf'
  +++ |+#include <stdio.h>
    1 | void insert(char *);
main.c:15:3: warning: incompatible implicit declaration of built-in function 'scanf' [-Wbuiltin-declaration-mismatch]
   15 |   scanf("%d", &n);
      |   ^~~~~
main.c:15:3: note: include '<stdio.h>' or provide a declaration of 'scanf'
main.c:18:7: error: implicit declaration of function 'strcpy' [-Wimplicit-function-declaration]
   18 |       strcpy(dict[i], "\0");
      |       ^~~~~~
main.c:1:1: note: include '<string.h>' or provide a declaration of 'strcpy'
  +++ |+#include <string.h>
    1 | void insert(char *);
main.c:18:7: warning: incompatible implicit declaration of built-in function 'strcpy' [-Wbuiltin-declaration-mismatch]
   18 |       strcpy(dict[i], "\0");
      |       ^~~~~~
main.c:18:7: note: include '<string.h>' or provide a declaration of 'strcpy'
main.c:25:10: error: implicit declaration of function 'strcmp' [-Wimplicit-function-declaration]
   25 |       if(strcmp(str, "insert") == 0)
      |          ^~~~~~
main.c:25:10: note: include '<string.h>' or provide a declaration of 'strcmp'
main.c: In function 'insert':
main.c:47:3: warning: incompatible implicit declaration of built-in function 'strcpy' [-Wbuiltin-declaration-mismatch]
   47 |   strcpy(dict[h(str, i)], str);
      |   ^~~~~~
main.c:47:3: note: include '<string.h>' or provide a declaration of 'strcpy'
main.c: In function 'find':
main.c:59:7: error: implicit declaration of function 'printf' [-Wimplicit-function-declaration]
   59 |       printf("no\n");
      |       ^~~~~~
main.c:59:7: note: include '<stdio.h>' or provide a declaration of 'printf'
main.c:59:7: warning: incompatible implicit declaration of built-in function 'printf' [-Wbuiltin-declaration-mismatch]
main.c:59:7: note: include '<stdio.h>' or provide a declaration of 'printf'
main.c:64:7: warning: incompatible implicit declaration of built-in function 'printf' [-Wbuiltin-declaration-mismatch]
   64 |       printf("yes\n");
      |       ^~~~~~
main.c:64:7: note: include '<stdio.h>' or provide a declaration of 'printf'
main.c: At top level:
main.c:78:5: error: conflicting types for 'h'; have 'int(char *, int)'
   78 | int h(char *str, int i)
      |     ^
main.c:70:5: note: previous definition of 'h' with type 'int(int)'
   70 | int h(int k)
      |     ^
main.c: In function 'h':
main.c:103:13: error: passing argument 1 of 'h' makes pointer from integer without a cast [-Wint-conversion]
  103 |   return (h(k) + i*h2(k))%N;
      |             ^
      |             |
      |             int
main.c:78:13: note: expected 'char *' but argument is of type 'int'
   78 | int h(char *str, int i)
      |       ~~~~~~^~~
main.c:103:11: error: too few arguments to function 'h'
  103 |   return (h(k) + i*h2(k))%N;
      |           ^
main.c:78:5: note: declared here
   78 | int h(char *str, int i)
      |     ^