Advertisement
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%.1f\n", b1, r1, p1);
- printf("2\t%.0f\t%.1f\t%.1f\n", b2, r2, p2);
- printf("3\t%.0f\t%.1f\t%.1f\n", b3, r3, p3);
- printf("Итого:\t%.0f\t%.1f\t%.1f\n", bs, r3, ps);
- }
- void main() {
- // подключение руссого языка
- setlocale(LC_ALL, "rus");
- // кол-во багажа, расстояние, плата
- float b1, r1, p1,
- b2, r2, p2,
- b3, r3, p3;
- // всего багажа, растоянии, общая плата
- float bs, ps;
- int p = 3; // кол-во пассажиров в такси
- inputData(&b1, &r1);
- inputData(&b2, &r2);
- inputData(&b3, &r3);
- float r21 = r2 - r1;
- float r32 = r3 - r2;
- calculateCharges(b1, r1, &p1, &p2, &p3, p); p--;
- calculateCharges(b2, r21, &p1, &p2, &p3, p); p--;
- calculateCharges(b3, r32, &p1, &p2, &p3, p);
- ps = calculateTotals(p1, p2, p3);
- bs = calculateTotals(b1, b2, b3);
- printTable(b1, r1, p1, b2, r2, p2, b3, r3, p3, bs, ps);
- getchar(); getchar();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement