Не сходится ответ компилятора с калькулятором - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Привет! Задание мое следующее - проанализировать текстовый файл, найти победителя и так же посчитать среднее арифметическое. Внутри файла : Chelsea 54 Real Madrid 65 Barcelona 86 Inter 34 Arsenal 58 Juventus 96 Если посчитать на калькуляторе : (54 + 65 + 86 + 34 + 58 + 96) / 6 = 65,5 но компилятор показывает ответ 63. или это допустимая погрешность ? Вот мой код, на всякий, может ошибся я где-то.
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include <string.h>
 
int main(void){
FILE *fp;
char teamname[25], winner[25];
int max=INT_MIN, points, k=0,all=0;
float a_average;
 
fp = fopen("teams.txt","r");
while(fscanf(fp,"%s %d",teamname, &points)!=EOF){
    if (max<points){
        max = points;
        strcpy(winner,teamname);
    } k++; all+=points;
}
 
a_average = (all/k);
 
printf("Winner team is %s with %d points!\n",winner,max);
printf("Average points are : %.1f", a_average);

return 0;
}

Решение задачи: «Не сходится ответ компилятора с калькулятором»

textual
Листинг программы
#include <stdio.h>
 
int main (void)
{
    int a = 3, b = 4;
    int ans;
    float answer;
 
    // целочисленное деление:
    ans = a/b;
    printf("%d/%d = %d\n", a, b, ans);
 
    // целочисленное деление:
    answer = a/b;
    printf("%d/%d = %.1f\n", a, b, answer);
 
    // деление с точкой:
    answer = (float) a/b;
    printf("%d/%d = %.1f\n", a, b, answer);
}

Объяснение кода листинга программы

  1. Подключение стандартной библиотеки
  2. Объявление переменных: a, b, ans, answer
  3. Присваивание значений переменным a и b
  4. Вычисление и сохранение результата деления a на b в переменную ans
  5. Вывод на экран результатов деления с использованием функции printf
  6. Вычисление и сохранение результата деления a на b в переменную answer с использованием типа данных float
  7. Вывод на экран результатов деления с использованием функции printf
  8. Вычисление и сохранение результата деления a на b в переменную answer с использованием типа данных float и явного приведения типа (float)
  9. Вывод на экран результатов деления с использованием функции printf

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.889 из 5
Похожие ответы