I'm working on an assignment that I can't figure out. The instructions were to create a program that reads in an input file of integers, and prints out the number of times any number from 0-9 appears. I can only use THREE variables (an array counts as one). The problem I have is that the program is supposed to detect the EOF and stop scanning there. My program isn't doing this.

A sample run would be if the input file had: 1 2 4 3 5 8 9 9 9 9 5 3 2 38 39 92 0 3

The output would be:

1 0's

1 1's

2 2's

3 3's

1 4's

2 5's

0 6's

0 7's

1 8's

4 9's

It ignores any number that is not between 0 and 9. Here is my program so far. Everything seems to work except I am getting a segmentation fault when running it... PLEASE HELP! THANK YOU!

Code:int main() { int vals[10]; int numCount[10]; int i; while (scanf("%d", &vals[i]) !=EOF) { vals[i] = 0; i++; } while (scanf("%d", &vals[i]) !=EOF) { i++; if (vals[i] == 0) { numCount[0] = numCount[0] + 1; } if (vals[i] == 1) { numCount[1] = numCount[1] + 1; } if (vals[i] == 2) { numCount[2] = numCount[2] + 1; } if (vals[i] == 3) { numCount[3] = numCount[3] + 1; } if (vals[i] == 4) { numCount[4] = numCount[4] + 1; } if (vals[i] == 5) { numCount[5] = numCount[5] + 1; } if (vals[i] == 6) { numCount[6] = numCount[6] + 1; } if (vals[i] == 7) { numCount[7] = numCount[7] + 1; } if (vals[i] == 8) { numCount[8] = numCount[8] + 1; } if (vals[i] == 9) { numCount[9] = numCount[9] + 1; } } for (i = 0; i < 10; i++) { printf("%d %d's\n", numCount[i], i); } }