1 / 1 / 0
Регистрация: 01.11.2017
Сообщений: 128

Не сходится ответ компилятора с калькулятором

14.02.2018, 15:42. Показов 1085. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет! Задание мое следующее - проанализировать текстовый файл, найти победителя и так же посчитать среднее арифметическое.

Внутри файла :

Chelsea 54
Real Madrid 65
Barcelona 86
Inter 34
Arsenal 58
Juventus 96


Если посчитать на калькуляторе : (54 + 65 + 86 + 34 + 58 + 96) / 6 = 65,5

но компилятор показывает ответ 63.
или это допустимая погрешность ?


Вот мой код, на всякий, может ошибся я где-то.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#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;
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.02.2018, 15:42
Ответы с готовыми решениями:

Лимит не сходится с онлайн калькулятором
Не могу понять, 10 раз и так и сяк прорешала. Везде выдаёт ответ бесконечность, а у меня 1/pi. Кто прав?

Не сходится ответ
Что не так пишу? &lt;?php $x=-2.34; echo $s=(abs($x-5)-sin($x))/3 + sqrt(pow($x,2)+2014) * cos(2*$x-3); ?&gt; Ответ...

Где то ошибся,ответ не сходится
Ребят,посмотрите код плиз..Где то ошибся,ответ не сходится.... program Project12345; {$APPTYPE CONSOLE} uses SysUtils; ...

9
2485 / 1149 / 709
Регистрация: 25.04.2016
Сообщений: 3,298
14.02.2018, 15:56
попробуйте с приведением типа:
a_average = (float) all/k;
0
1 / 1 / 0
Регистрация: 01.11.2017
Сообщений: 128
14.02.2018, 16:00  [ТС]
в 20 строку добавить этот фрагмент ?
0
2485 / 1149 / 709
Регистрация: 25.04.2016
Сообщений: 3,298
14.02.2018, 16:01
robben_55, да

не добавить, а заменить, т.е. вместо
a_average = (all/k);

напишите
a_average = (float) all/k;
0
1 / 1 / 0
Регистрация: 01.11.2017
Сообщений: 128
14.02.2018, 16:03  [ТС]
Цитата Сообщение от stake-k26 Посмотреть сообщение
попробуйте с приведением типа:
a_average = (float) all/k;
извините, что отнимаю ваше время, но не изменился ответ.
0
 Аватар для COKPOWEHEU
4051 / 2602 / 432
Регистрация: 09.09.2017
Сообщений: 11,572
14.02.2018, 16:05
Цитата Сообщение от robben_55 Посмотреть сообщение
Real Madrid 65
Тут два слова, программа считывает только Real, потом фейлит попытку считать счет (оставляет прежний) и потом отдельно считывает Madrid со своим счетом.
Чтобы это исправить можно проверять количество считанных элементов (возвращаемое scanf'ом значение) и, если надо, достраивать предыдущее название.

Добавлено через 50 секунд
Для отладки надо было просто вывести все что программа считывает
2
2485 / 1149 / 709
Регистрация: 25.04.2016
Сообщений: 3,298
14.02.2018, 16:09
как вариант "попроще" заменить в текстовом файле все названия с пробелом на непробельные, т.е. вместо Real Madrid, писать Real_Madrid ну или как-то так.
1
1 / 1 / 0
Регистрация: 01.11.2017
Сообщений: 128
14.02.2018, 16:09  [ТС]
Разобрался насчет ошибки про реал мадрид.
Я ввел изменения, ответ вышел все равно 65 без 5-ой десятой.

Или, я где-то читал, что это нормально в си "съедать части числа" ?
0
2485 / 1149 / 709
Регистрация: 25.04.2016
Сообщений: 3,298
14.02.2018, 16:15
Лучший ответ Сообщение было отмечено robben_55 как решение

Решение

взгляните:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#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
1 / 1 / 0
Регистрация: 01.11.2017
Сообщений: 128
14.02.2018, 16:17  [ТС]
Спасибо вам большое! Помогли очень круто!

И остальным, кто отметился тут сообщением - вам так же спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.02.2018, 16:17
Помогаю со студенческими работами здесь

Не работает программа, не сходится ответ
program zadacha_5; uses crt; var a:array of real ; b:array of real; m,w,s,r,q:real; c:real; k,i:integer; begin ...

Все решил, а ответ не сходится
Сказали написать программу по данной блок-схеме, я вроде написал, но ответ не сходится. Кто сможет помочь? Вот что получилось у...

мой ответ не сходится с учебником
какую силу по модулю нужно приложить к сходящимся силам F1=2 and F2=4, образующими с осью абсцисс углы 30 и 60 градусов чтобы их...

Табуляция функции - не сходится ответ
Функция: Cn(x)=\gamma +\ln x+\int_{0}^{x}\frac{t-1}{t}dt Ряд Тейлора: Cn(x)=\gamma + \ln x +\sum_{n=1}^{\propto...

еще один нитеграл ответ не сходится
Решал этот интеграл раза два - у меня ответ один и тот же


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

Новые блоги и статьи
Вопросы на собеседованиях по микросервисам
ArchitectMsa 27.03.2025
Работодатели ищут не просто разработчиков, знающих базовые концепции, а специалистов, разбирающихся в тонкостях масштабирования, отказоустойчивости и производительности. Сейчас на первый план выходят. . .
Взаимодействие Python с REST API
py-thonny 27.03.2025
REST API - это архитектурный стиль взаимодействия компонентов распределённого приложения в сети. Python располагает функциональным набором инструментов для работы с REST API и основная библиотека для. . .
sshd restrictions, ssh access limitations
jigi33 26.03.2025
sshd restrictions | ssh access limitations рестрикции доступа на сервер sshd статья: https:/ / www. golinuxcloud. com/ restrict-allow-ssh-certain-users-groups-rhel
Компиляция C++ с Clang API
NullReferenced 24.03.2025
Компиляторы обычно воспринимаются как черные ящики, которые превращают исходный код в исполняемые файлы. Мы запускаем компилятор командой в терминале, и вуаля — получаем бинарник. Но что если нужно. . .
Многопоточное программировани­е в C#: Класс Thread
UnmanagedCoder 24.03.2025
Когда запускается приложение на компьютере, операционная система создаёт для него процесс - виртуальное адресное пространство. В C# этот процесс изначально получает один поток выполнения — главный. . .
SwiftUI Data Flow: Передача данных между представлениями
mobDevWorks 23.03.2025
При первом знакомстве со SwiftUI кажется, что фреймворк предлагает избыточное количество механизмов для передачи данных: @State, @Binding, @StateObject, @ObservedObject, @EnvironmentObject и другие. . . .
Моки в Java: Сравниваем Mockito, EasyMock, JMockit
Javaican 23.03.2025
Как протестировать класс, который зависит от других сложных компонентов, таких как базы данных, веб-сервисы или другие классы, с которыми и так непросто работать в тестовом окружении? Для этого и. . .
Архитектурные паттерны микросервисов: ТОП-10 шаблонов
ArchitectMsa 22.03.2025
Популярность микросервисной архитектуры объясняется множеством важных преимуществ. К примеру, она позволяет командам разработчиков работать независимо друг от друга, используя различные технологии и. . .
Оптимизация рендеринга в Unity: Сортировка миллиона спрайтов
GameUnited 22.03.2025
Помните, когда наличие сотни спрайтов в игре приводило к существенному падению производительности? Время таких ограничений уходит в прошлое. Сегодня геймдев сталкивается с задачами совершенно иного. . .
Образование и практика
Igor3D 21.03.2025
Добрый день А вот каково качество/ эффективность ВУЗовского образования? Аналитическая геометрия изучается в первом семестре и считается довольно легким курсом, что вполне справедливо. Ну хорошо,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru