Load integers in the interval [ 10 , 99 ] . Loading should stop when you enter a number outside the given interval . Then print the number of times each number was loaded from the given interval , it should print out only those numbers that were loaded at least once
Code:
#include <stdio.h>
#include <stdlib.h>
#define GG 99
#define DG 10
int main(void) {
int number, i;
int counter[GG - DG + 1] = { 0 };
do {
printf("Enter the number from interval [%d, %d]: ", DG, GG);
scanf("%d", &number);
if (number >= DG && number <= GG) {
counter[number]++;
}
}while (number >= DG && number <= GG);
for (i = DG; i <= GG; ++i) {
if (counter[i] > 0) {
printf("\nNumber %d has been entered %d times\n",i, counter[i]);
}
}
return 0;
}
So if you enter for example 10,10,20,30,1000 it will write correctly that number 10 has been entered 2 times, number 20 1 time and number 30 1 time , but it will also print out message it for numbers 90,91,92,94,96 and 98.
I really don't understand why does it load those numbers, for example if i = 90 , it is going to check if counter[90] > 0 and obviously counter[90] = 0 so if statement is = 0 and it isn't supposed to print anything , but still it does.