Когда вы делите два целых числа, результатом также будет целое число, а «точный» результат усекается до целого числа.Примеры:
3/2 -> 1
10/3 -> 3
5/10 -> 0
и когда вы делаете
int percentage = (frequency[calcCount] /36000) * 100;
, сначала вычисляется часть frequency[calcCount] /36000
.Это деление между двумя int
, и оно даст нулевой результат, потому что frequency[calcCount]
меньше 36000
.Следовательно, умножение на 100 по-прежнему дает ноль.
Вместо этого сначала делайте умножение, например:
int percentage = (100 * frequency[calcCount]) /36000;
Другой альтернативой является использование с плавающей запятой, например:
double percentage = (frequency[calcCount] /36000.0) * 100;
^^^
Notice the .0 to make 36000 a double
, нозатем вам нужно изменить печать, чтобы использовать% f
double percentage = (frequency[calcCount] / 36000.0) * 100;
printf("Sum = %d; Frequency = %d; Percentage = %.2f \n", calcCount, frequency[calcCount], percentage);
^^^
Notice this to print the double