Skip to content

Instantly share code, notes, and snippets.

@LionZXY
Created September 27, 2017 21:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save LionZXY/92e0ec66b4d0d80f677a59c4bd519b67 to your computer and use it in GitHub Desktop.
Save LionZXY/92e0ec66b4d0d80f677a59c4bd519b67 to your computer and use it in GitHub Desktop.
#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