Your second if condition doesn't work correctly. The series of && only return a boolean result, not the value of all of the largest value amongst them. So really all your checking is, is each letter value greater than 1 or 0 which is not what your intention is I believe?
Here is a simple example of how to properly check this:
Code:
int POLL (int * range_array, size_t size) /* take the size of the array, don't use a hard-coded value */
{
int frequency[size]; /* Replaces all your individual variables */
size_t index, subcheck; /* Loop control */
memset(frequency, 0, sizeof frequency); /* EDIT: forgot you can't initialize VLAs */
/* For every value in range_array, check it against every other value of range_array and count how many times it appears (should always be at least once) */
for (index = 0; index < size; ++index)
for (subcheck = 0; subcheck < size; ++subcheck)
if (range_array[subcheck] == range_array[index])
frequency[index]++;
/* Now we know the frequency of each item in the array. Lets find the item with the largest frequency now */
int max = 0;
int max_index = 0;
for (index = 0; index < size; ++index) {
if (frequency[index] > max) {
max = frequency[index];
max_index = index;
}
}
/* return the item with the largest frequency */
return range_array[max_index];
}