powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / programming-challanges, задачи
5 сообщений из 5, страница 1 из 1
programming-challanges, задачи
    #38335157
aybek_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Условие задачи:
ЗадачаНесколько друзей решили вместе путешествовать. И в конце путешествия, чтобы уравнять количество
расходов, они решили обмениваться деньгами. Требуется определить минимальную сумму денег, которая
должна поменять хозяина, для того чтобы уравнять (с точностью до копейки) расходы друзей.
пример ввода:
3
10.00
20.00
30.00
0
пример вывода:
10
первому другу достаточно дать третьему 10 рублей и их расходы станут одинаковыми.

Решил задачу таким способом:
1. Вычислил среднее арифметическое расходов.
2. От расхода каждого друга отнял среднее арифметическое расходов.
3. Суммировал положительные элементы, получившегося массива.
Код решения на С:
Код: plaintext
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.
28.
29.
30.
31.
32.
33.
34.
#include <stdio.h>

#define MAX_STUDENT 1000

int main()
{
	int i;

	float sn;
	float mm, em, sum;
	float sp[MAX_STUDENT];

	for (;;) {
		scanf("%f", &sn);
		if (!sn)
			break;

		sum = 0;
		for (i = 0; i < sn; i++) {
			scanf("%f", &sp[i]);
			sum += sp[i];
		}

		em = sum/(float)sn;

		for (mm = 0, i = 0; i < sn; i++)
			if (em-sp[i] > 0)
				mm += (em-sp[i]);

		printf("$%.2f\n", mm);
	}

	return 0;
}


Но что должна делать программа, при таком входе:
Код: plaintext
1.
2.
3.
4.
2
0.01
0.00
0


Как они поделят копейку?
Округлял до сотых, отбрасывал цифры после запятой до сотых, нет, все равно программа тест не проходит.
...
Рейтинг: 0 / 0
programming-challanges, задачи
    #38335175
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aybek_,

1) не используй для денежных расчётов плавающую арифметику
2) float sn - можно ввести полтора студента?
да и проверить не мешает, что sn>0 и sn<MAX_STUDENT
...
Рейтинг: 0 / 0
programming-challanges, задачи
    #38335239
aybek_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,

То что sn целое число, больше нуля и меньше 10000, гарантируется в условии задачи.
...
Рейтинг: 0 / 0
programming-challanges, задачи
    #38335241
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aybek_Изопропил,

То что sn целое число, больше нуля и меньше 10000, гарантируется в условии задачи.
вот используй целый тип.
а контроль входных данных условиям не противоречит
...
Рейтинг: 0 / 0
programming-challanges, задачи
    #38336386
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
Задачачтобы уравнять (с точностью до копейки)
aybek_Как они поделят копейку?

Так её делить и не надо.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / programming-challanges, задачи
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]