Advertisement
Guest User

Untitled

a guest
Sep 21st, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.96 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <locale.h>
  4. #include <malloc.h>
  5.  
  6. int main()
  7. {
  8.     setlocale(LC_ALL, "rus");
  9.  
  10.     int *set1_p, *set2_p, set1_size, set2_size, temp_var, set1_real_size, set2_real_size, c, i, j, k;
  11.  
  12.     printf("Добрый день, задайте первое множество\n");
  13.     scanf("%d", &set1_size);
  14.     set1_p = (int*)malloc(set1_size* sizeof(int));
  15.  
  16.     printf("Теперь второе\n");
  17.     scanf("%d", &set2_size);
  18.     set2_p = (int*)malloc(set2_size * sizeof(int));
  19.  
  20.     while(1){
  21.  
  22.     printf("Какую операцию вы хотите сделать с множествами?\n");
  23.     printf("1 - Ввести элементы множества\n");
  24.     printf("2 - Вывести элементы множества\n");
  25.     printf("3 - Добавить элемент множества\n");
  26.     printf("4 - Удалить элемент множества\n");
  27.     scanf("%d", &c);
  28.  
  29.      switch(c) {
  30.         case 1:
  31.             printf("Ввести элементы первого множества\n");
  32.  
  33.              for (i = 0; i<set1_size; i++)
  34.                 {
  35.                 printf("set1_p[%d] = ", i);
  36.                 scanf("%d", &temp_var);
  37.  
  38.                int found = 0;
  39.                 for (k=0; k < i; k++ ){
  40.                     if (set1_p[k] == temp_var)
  41.                     {
  42.                         found = 1;
  43.                     }
  44.                  }
  45.                   if (found != 0) {
  46.                     printf("Такой элемент уже есть в множестве\n");
  47.                      i--;
  48.                  } else {
  49.                      set1_p[i] = temp_var;
  50.                  }
  51.                 }
  52.                 set1_size=i-1;
  53.  
  54.             printf("Ввести элементы второго множества\n");
  55.  
  56.             for (j = 0; j<set2_size; j++)
  57.                 {
  58.                 printf("set2_p[%d] = ", j);
  59.                 scanf("%d", &temp_var);
  60.  
  61.                 int found = 0;
  62.                 for (k=0; k < j; k++ ){
  63.                     if (set2_p[k] == temp_var)
  64.                     {
  65.                         found = 1;
  66.                     }
  67.                  }
  68.                   if (found != 0) {
  69.                     printf("Такой элемент уже есть в множестве\n");
  70.                      j--;
  71.                  } else {
  72.                      set2_p[j] = temp_var;
  73.                  }
  74.                  }
  75.                 set2_size=i-1;
  76.                 break;
  77.  
  78.         case 2:
  79.            printf("Элементы первого множества\n");
  80.  
  81.             for (i = 0; i<set1_real_size; i++)
  82.             printf("%d\n", set1_p[i]);
  83.  
  84.            printf("Элементы второго множества\n");
  85.  
  86.             for (j = 0; j<set2_size; j++)
  87.             printf("%d\n", set2_p[j]);
  88.             break;
  89.  
  90.         case 3:
  91.            printf("Добавить элемент первого множества\n");
  92.            scanf("%d", &temp_var);
  93.            if(set1_size>set1_real_size){
  94.            set1_p[set1_real_size+1] = temp_var;
  95.            }
  96.            else{
  97.             set1_p = realloc(set1_p, set1_size*2);
  98.             set1_size *= 2;
  99.             set1_p[set1_real_size+1] = temp_var;
  100.            }
  101.            printf("Добавить элемент второго множества\n");
  102.            scanf("%d", &temp_var);
  103.            if(set2_size>set2_real_size){
  104.            set2_p[set2_real_size+1] = temp_var;
  105.  
  106.            }
  107.             else{
  108.             set2_p = realloc(set2_p, set2_size*2);
  109.             set2_size *= 2;
  110.             set2_p[set2_real_size+1] = temp_var;
  111.             }
  112.  
  113.             break;
  114.  
  115.         case 4:
  116.             printf("Удалить элемент первого множества\n");
  117.             printf("Введите элемент, который хотите удалить\n");
  118.             scanf("%d", &temp_var);
  119.  
  120.             int found = 0;
  121.  
  122.             for (k=0; k < set1_real_size; k++ ){
  123.             if (found == 0) {
  124.             if(temp_var == set1_p[k]){
  125.             found = 1;
  126.             set1_real_size --;
  127.             }
  128.             } else {
  129.             set1_p[k] = set1_p[k + 1];
  130.             }
  131.             }
  132.  
  133.             printf("Удалить элемент второго множества\n");
  134.             printf("Введите элемент, который хотите удалить\n");
  135.             scanf("%d", &temp_var);
  136.  
  137.             int fou = 0;
  138.  
  139.             for (k=0; k < set2_real_size; k++ ){
  140.             if (fou == 0) {
  141.             if(temp_var == set1_p[k]){
  142.             fou = 1;
  143.             set2_real_size --;
  144.             }
  145.             } else {
  146.             set1_p[k] = set1_p[k + 1];
  147.             }
  148.             }
  149.  
  150.             break;
  151.  
  152.         default:
  153.             printf("Вы не очень умны\n" );
  154.  
  155.             }
  156.             }
  157.              free(set1_p);
  158.              free(set2_p);
  159.  
  160.     return 0;
  161. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement