Can somebody help me find the problem with my hash tables program. I have to produce the following output:

% full = 5, % clashes = 5

% full = 10, % clashes = 2

% full = 15, % clashes = 6

% full = 20, % clashes = 7

% full = 25, % clashes = 10

% full = 30, % clashes = 14

% full = 35, % clashes = 17

% full = 40, % clashes = 19

% full = 45, % clashes = 21

% full = 50, % clashes = 27

% full = 55, % clashes = 29

% full = 60, % clashes = 33

% full = 65, % clashes = 34

% full = 70, % clashes = 36

% full = 75, % clashes = 38

% full = 80, % clashes = 42

% full = 85, % clashes = 44

% full = 90, % clashes = 45

% full = 95, % clashes = 48

% full = 100, % clashes = 50

but my program gives the following:

full = 5, clashes = 15

full = 10, clashes = 7

full = 15, clashes = 10

full = 20, clashes = 10

full = 25, clashes = 12

full = 30, clashes = 15

full = 35, clashes = 19

full = 40, clashes = 20

full = 45, clashes = 22

full = 50, clashes = 28

full = 55, clashes = 30

full = 60, clashes = 34

full = 65, clashes = 35

full = 70, clashes = 37

full = 75, clashes = 39

full = 80, clashes = 42

full = 85, clashes = 44

full = 90, clashes = 45

full = 95, clashes = 48

full = 100, clashes = 51

Can somebody help me spot the problem with my code?Please

Code:`#include <stdio.h>`

#include <stdlib.h>

/* Small program to explore using hash tables.

1. The hash table takes up to 400 items

2. The program generates 400 six digit numbers.

3. It uses a hashing routine to place them in the hash table

4. The program prints a report on the percantage of clashes that

occur for every 20 numbers placed in the table

*/

#define EMPTY -1

int main()

{

int count, hash, number;

int clashes, hashTable[400];

/* initialise the random number generator */

srand(1);

/* initialise hash table */

for (count=0; count<400; count++) hashTable[count] = EMPTY;

/* generate 400 six digit numbers and put in hash table */

for (count=0; count<400; count++)

{

number = rand() % 1000000; /* create 6 digit number */

hash = number % 400; /* get a hash value of number */

/* determine if we have a clash */

if (hashTable[hash] != EMPTY)

{

clashes++;

/* Find next empty slot in hashTable */

while (hashTable[hash] != EMPTY)

{

hash = (hash + 1) % 400;

}

}

hashTable[hash] = number;

if ((count+1) % 20 == 0)

{

printf(" full = %d, clashes = %d\n",

(count+1)*100/400, (clashes)*100/count);

}

}

return 0;

}