Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdio.h"
- #include "locale.h"
- // ввод данных
- void inputData(float* b, float* r) {
- // делаем первый ввод и проверяем введены ли корректно данные, если некорректно, то вводим заново
- do {
- printf("Введите кол-во багажа пасажира:\n");
- scanf_s("%f", b);
- if (*b < 0)
- printf("Неверный ввод данных. Повторите ввод.\n");
- } while (*b < 0);
- do {
- printf("Введите показатели километража:\n");
- scanf_s("%f", r);
- if (*r < 0)
- printf("Неверный ввод данных. Повторите ввод.\n");
- } while (*r < 0);
- }
- // определение платы за проед для
- void calculateCharges(float b, float r, float* p1, float* p2, float* p3, int p) {
- // если пассажира три или два или один, то плата за проезд
- // распределяется равномерно и учитывается его багаж с собой
- if (p == 3) {
- *p1 = b * 50 + 12 * r / p;
- *p2 += 12 * r / p;
- *p3 += 12 * r / p;
- }
- if (p == 2) {
- *p2 += b * 50 + 12 * r / p;
- *p3 += 12 * r / p;
- }
- if (p == 1) {
- *p3 += b * 50 + 12 * r;
- }
- }
- // суммарная оплата за такси
- float calculateTotals(float p1, float p2, float p3) {
- return p1 + p2 + p3; // суммурует общую сумму оплаты и возращает данные
- }
- // печать таблицы
- void printTable(float b1, float r1, float p1, float b2, float r2, float p2, float b3, float r3, float p3, float bs, float ps) {
- printf("\n№\tБагаж\tРасстояние\tПлата\n");
- printf("1\t%.0f\t%.1f\t\t%.1f\n", b1, r1, p1);
- printf("2\t%.0f\t%.1f\t\t%.1f\n", b2, r2, p2);
- printf("3\t%.0f\t%.1f\t\t%.1f\n", b3, r3, p3);
- printf("Итого:\t%.0f\t%.1f\t\t%.1f\n", bs, r3, ps);
- }
- void main() {
- // подключение руссого языка
- setlocale(LC_ALL, "rus");
- // кол-во багажа, километраж выхода, плата
- float b1, r1, p1 = 0,
- b2, r2, p2 = 0,
- b3, r3, p3 = 0;
- // всего багажа, общая плата
- float bs, ps;
- // вводим данные для каждого пассажира
- inputData(&b1, &r1);
- inputData(&b2, &r2);
- inputData(&b3, &r3);
- // расчитываем расстояние пройденное совместно
- float r21 = r2 - r1; // расстояние пройденное двух
- float r32 = r3 - r2; // растоение пройденное одним
- calculateCharges(b1, r1, &p1, &p2, &p3, 3); // рассчитываем для первого
- calculateCharges(b2, r21, &p1, &p2, &p3, 2); // для второго
- calculateCharges(b3, r32, &p1, &p2, &p3, 1); // для третьего
- ps = calculateTotals(p1, p2, p3); // считаем общую прибыль таксиста
- bs = calculateTotals(b1, b2, b3); // считаем общую сумму багажа
- printTable(b1, r1, p1, b2, r2, p2, b3, r3, p3, bs, ps); // отправляем переменные для вывода в таблицу
- }
Advertisement
Add Comment
Please, Sign In to add comment