Created
September 27, 2017 21:56
-
-
Save LionZXY/92e0ec66b4d0d80f677a59c4bd519b67 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdlib.h> | |
#include <stdio.h> | |
/*Ввод массива по указателю p*/ | |
void setMassive(int *p, int n) { | |
printf("Ведите поэлементно ваше множество:\n"); | |
for (int i = 0; i < n; i++) { | |
printf("p[%d] = ", i); | |
scanf("%d", &p[i]); | |
} | |
} | |
/*Вывод на экран массива по указателю p*/ | |
void printMassive(int *p, int n) { | |
printf("Ваше текущее множество:\n"); | |
for (int i = 0; i < n; i++) { | |
printf("%d ", p[i]); | |
} | |
printf("\n"); | |
} | |
/*Добавляет в массив p элемент element на место с индексом z*/ | |
void addElementToMassive(int *p, int *n, int element, int z) { | |
*n = *n + 1; //увеличиваем по указателю количество элементов массива,т.к. мы добавим элемент | |
p = (int *) realloc(p, (*n) * sizeof(int)); | |
for (int i = *n; i > z; i--) { | |
p[i] = p[i - 1]; | |
} | |
p[z] = element; | |
} | |
void deleteElementFromMassive(int *p, int *n, int z) { | |
for (int i = z; i < *n; i++) { | |
p[i] = p[i + 1]; | |
} | |
*n = *n - 1; //уменьшаем по указателю количество элементов массива,т.к. мы удалили элемент | |
p = (int *) realloc(p, (*n) * sizeof(int)); | |
} | |
int main(void) { | |
system("chcp 65001"); | |
int *p = NULL; //указатель на множество | |
int size; //размер множества | |
int el; //элемент для добавления | |
int pos; //позиция на которую будем вставлять элемент el | |
int delpos; //позиция с которой будем удалять элемент | |
printf("Введите размер массива = "); | |
scanf("%d", &size); | |
printf("size = %i\n", size); | |
p = (int *) malloc(size * sizeof(int)); //выделяем память для нашего множества | |
setMassive(p, size); //заполняем наше множество | |
printf("Множество до преобразования:\n"); | |
printMassive(p, size); //выводим множество на экран | |
printf("Введите элемент для добавления = "); | |
scanf("%d", &el); | |
printf("Введите позицию, на которую будем вставлять элемент = "); | |
scanf("%d", &pos); | |
addElementToMassive(p, &size, el, pos); //добавляем элемент в множество на определенную позицию | |
printf("Множество после добавления элемента:\n"); | |
printMassive(p, size); //выводим измененное множество на экран | |
printf("Введите позицию с которой будем удалять элемент = "); | |
scanf("%d", &delpos); | |
deleteElementFromMassive(p, &size, delpos);//удаление из множества элемента с заданной позиции | |
printf("Множество после удаления элемента:\n"); | |
printMassive(p, size); //выводим измененное множество на экран | |
free(p); //освобождаем память | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment