Advertisement
Qellex

4.2

Dec 20th, 2020
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.48 KB | None | 0 0
  1.  
  2. #include "stdio.h"
  3. #include "locale.h"
  4.  
  5.  
  6. // ввод данных
  7. void inputData(float* b, float* r) {
  8.     do {
  9.         printf("Введите кол-во багажа пасажира:\n");
  10.         scanf_s("%f", b);
  11.         if (*b < 0)
  12.             printf("Неверный ввод данных. Повторите ввод.\n");
  13.     } while (*b < 0);
  14.  
  15.     do {
  16.         printf("Введите преодоленное растояние пасажиром:\n");
  17.         scanf_s("%f", r);
  18.         if (*r < 0)
  19.             printf("Неверный ввод данных. Повторите ввод.\n");
  20.     } while (*r < 0);
  21. }
  22.  
  23. // определение платы за проед для
  24. void calculateCharges(float b, float r, float* p1, float* p2, float* p3, int p) {
  25.     if (p == 3) {
  26.         *p1 = b * 50 + 12 * r / p;
  27.         *p2 = 12 * r / p;
  28.         *p3 = 12 * r / p;
  29.     }
  30.     if (p == 2) {
  31.         *p2 += b * 50 + 12 * r / p;
  32.         *p3 = 12 * r / p;
  33.     }
  34.     if (p == 1) {
  35.         *p3 = b * 50 + 12 * r;
  36.     }
  37. }
  38.  
  39. // суммарная оплата за такси
  40. float calculateTotals(float p1, float p2, float p3) {
  41.     return p1 + p2 + p3;
  42. }
  43.  
  44.  
  45. // печать таблицы
  46. void printTable(float b1, float r1, float p1, float b2, float r2, float p2, float b3, float r3, float p3, float bs, float ps) {
  47.  
  48.     printf("\n\tБагаж\tРасстояние\tПлата\n");
  49.     printf("1\t%.0f\t%.1f\t%.1f\n", b1, r1, p1);
  50.     printf("2\t%.0f\t%.1f\t%.1f\n", b2, r2, p2);
  51.     printf("3\t%.0f\t%.1f\t%.1f\n", b3, r3, p3);
  52.     printf("Итого:\t%.0f\t%.1f\t%.1f\n", bs, r3, ps);
  53.  
  54. }
  55.  
  56.  
  57.  
  58. void main() {
  59.  
  60.     // подключение руссого языка
  61.     setlocale(LC_ALL, "rus");
  62.  
  63.     // кол-во багажа, расстояние, плата
  64.     float b1, r1, p1,
  65.           b2, r2, p2,
  66.           b3, r3, p3;
  67.  
  68.     // всего багажа, растоянии, общая плата
  69.     float bs, ps;
  70.     int p = 3; // кол-во пассажиров в такси
  71.  
  72.     inputData(&b1, &r1);
  73.     inputData(&b2, &r2);
  74.     inputData(&b3, &r3);
  75.     float r21 = r2 - r1;
  76.     float r32 = r3 - r2;
  77.  
  78.     calculateCharges(b1, r1, &p1, &p2, &p3, p); p--;
  79.     calculateCharges(b2, r21, &p1, &p2, &p3, p); p--;
  80.     calculateCharges(b3, r32, &p1, &p2, &p3, p);
  81.  
  82.     ps = calculateTotals(p1, p2, p3);
  83.     bs = calculateTotals(b1, b2, b3);
  84.  
  85.     printTable(b1, r1, p1, b2, r2, p2, b3, r3, p3, bs, ps);
  86.  
  87.  
  88.  
  89.     getchar(); getchar();
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement