Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <locale.h>
- #include <malloc.h>
- int main()
- {
- setlocale(LC_ALL, "rus");
- int *set1_p, *set2_p, set1_size, set2_size, temp_var, set1_real_size, set2_real_size, c, i, j, k;
- printf("Добрый день, задайте первое множество\n");
- scanf("%d", &set1_size);
- set1_p = (int*)malloc(set1_size* sizeof(int));
- printf("Теперь второе\n");
- scanf("%d", &set2_size);
- set2_p = (int*)malloc(set2_size * sizeof(int));
- while(1){
- printf("Какую операцию вы хотите сделать с множествами?\n");
- printf("1 - Ввести элементы множества\n");
- printf("2 - Вывести элементы множества\n");
- printf("3 - Добавить элемент множества\n");
- printf("4 - Удалить элемент множества\n");
- scanf("%d", &c);
- switch(c) {
- case 1:
- printf("Ввести элементы первого множества\n");
- for (i = 0; i<set1_size; i++)
- {
- printf("set1_p[%d] = ", i);
- scanf("%d", &temp_var);
- int found = 0;
- for (k=0; k < i; k++ ){
- if (set1_p[k] == temp_var)
- {
- found = 1;
- }
- }
- if (found != 0) {
- printf("Такой элемент уже есть в множестве\n");
- i--;
- } else {
- set1_p[i] = temp_var;
- }
- }
- set1_size=i-1;
- printf("Ввести элементы второго множества\n");
- for (j = 0; j<set2_size; j++)
- {
- printf("set2_p[%d] = ", j);
- scanf("%d", &temp_var);
- int found = 0;
- for (k=0; k < j; k++ ){
- if (set2_p[k] == temp_var)
- {
- found = 1;
- }
- }
- if (found != 0) {
- printf("Такой элемент уже есть в множестве\n");
- j--;
- } else {
- set2_p[j] = temp_var;
- }
- }
- set2_size=i-1;
- break;
- case 2:
- printf("Элементы первого множества\n");
- for (i = 0; i<set1_real_size; i++)
- printf("%d\n", set1_p[i]);
- printf("Элементы второго множества\n");
- for (j = 0; j<set2_size; j++)
- printf("%d\n", set2_p[j]);
- break;
- case 3:
- printf("Добавить элемент первого множества\n");
- scanf("%d", &temp_var);
- if(set1_size>set1_real_size){
- set1_p[set1_real_size+1] = temp_var;
- }
- else{
- set1_p = realloc(set1_p, set1_size*2);
- set1_size *= 2;
- set1_p[set1_real_size+1] = temp_var;
- }
- printf("Добавить элемент второго множества\n");
- scanf("%d", &temp_var);
- if(set2_size>set2_real_size){
- set2_p[set2_real_size+1] = temp_var;
- }
- else{
- set2_p = realloc(set2_p, set2_size*2);
- set2_size *= 2;
- set2_p[set2_real_size+1] = temp_var;
- }
- break;
- case 4:
- printf("Удалить элемент первого множества\n");
- printf("Введите элемент, который хотите удалить\n");
- scanf("%d", &temp_var);
- int found = 0;
- for (k=0; k < set1_real_size; k++ ){
- if (found == 0) {
- if(temp_var == set1_p[k]){
- found = 1;
- set1_real_size --;
- }
- } else {
- set1_p[k] = set1_p[k + 1];
- }
- }
- printf("Удалить элемент второго множества\n");
- printf("Введите элемент, который хотите удалить\n");
- scanf("%d", &temp_var);
- int fou = 0;
- for (k=0; k < set2_real_size; k++ ){
- if (fou == 0) {
- if(temp_var == set1_p[k]){
- fou = 1;
- set2_real_size --;
- }
- } else {
- set1_p[k] = set1_p[k + 1];
- }
- }
- break;
- default:
- printf("Вы не очень умны\n" );
- }
- }
- free(set1_p);
- free(set2_p);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement