Advertisement
Qellex

4,1

Dec 21st, 2020
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.34 KB | None | 0 0
  1. #include "stdio.h"
  2. #include "locale.h"
  3. #include "math.h"
  4.  
  5. // нахождения пересечение интервалов
  6. int uniteIntervals(int a, int b, int c, int d, int* e, int* f) {
  7.     // идет проверка на то как находятся концы интервалов относительно друг друга
  8.     if ((c <= b) && (a <= c)) {
  9.         *e = c;
  10.         if (d <= b) {
  11.             *f = d;
  12.             return 1;
  13.         }
  14.         *f = b;
  15.         return 1;
  16.  
  17.         *e = a;
  18.         if (d <= b) {
  19.             *f = b;
  20.             return 1;
  21.         }
  22.         *f = d;
  23.         return 1;
  24.     }
  25.     else if ((a <= d) && (c <= a)) {
  26.         *e = a;
  27.         if (b <= d) {
  28.             *f = b;
  29.             return 1;
  30.         }
  31.         *f = d;
  32.         return 1;
  33.     }
  34.     else
  35.         return 0;
  36. }
  37.  
  38.  
  39. void main() {
  40.  
  41.     setlocale(LC_ALL, "rus");
  42.  
  43.     int a, b, c, d, e, f;
  44.     do {
  45.         printf("\nВведите интервал [a,b] и [c,d]: ");
  46.         scanf_s("%d%d%d%d", &a, &b, &c, &d);
  47.         if ((a > b) || (d < c))
  48.             printf("Не верно задан интервал, повторите ввод.");
  49.     } while ((a > b) || (d < c));
  50.  
  51.     if (uniteIntervals(a, b, c, d, &e, &f))
  52.         printf("Пересечение интервалов = [%d,%d]", e, f);
  53.     else
  54.         printf("Пересечения нет.");
  55.    
  56.     do {
  57.         printf("\nВведите интервал [a,b] и [c,d]: ");
  58.         scanf_s("%d%d%d%d", &a, &b, &c, &d);
  59.         if ((a > b) || (d < c))
  60.             printf("Не верно задан интервал, повторите ввод.");
  61.     } while ((a > b) || (d < c));
  62.  
  63.     if (uniteIntervals(a, b, c, d, &e, &f))
  64.         printf("Пересечение интервалов = [%d,%d]", e, f);
  65.     else
  66.         printf("Пересечения нет.");
  67.  
  68.     do {
  69.         printf("\nВведите интервал [a,b] и [c,d]: ");
  70.         scanf_s("%d%d%d%d", &a, &b, &c, &d);
  71.         if ((a > b) || (d < c))
  72.             printf("Не верно задан интервал, повторите ввод.");
  73.     } while ((a > b) || (d < c));
  74.  
  75.     if (uniteIntervals(a, b, c, d, &e, &f))
  76.         printf("Пересечение интервалов = [%d,%d]", e, f);
  77.     else
  78.         printf("Пересечения нет.");
  79.  
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement