Если в массиве присутствует заданное значение - удалить его, иначе добавить в конец массива - C (СИ)
Формулировка задачи:
Определить, есть ли в целочисленном массиве Q(10) заданное число Х, и если есть, то удалить его (если встречается неоднократно, то удалить все), а если нет, то добавить в конец массива.
Решение задачи: «Если в массиве присутствует заданное значение - удалить его, иначе добавить в конец массива»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <time.h> int main() { int size = 10, *Q, i, j, x, count = 0; Q = malloc(size * sizeof*Q); if(!Q){ fprintf(stderr, "Error allocate memory!"); exit(1); } srand(time(NULL)); for(i = 0; i < size; i++) printf("%d ", Q[i] = rand() % 20); putchar('\n'); puts("Enter number:"); while(1 != scanf("%d", &x)){ puts("Incorrect data enter!Try again."); while(getchar() != '\n'); } for(i = 0; i < size; i++){ if(Q[i] == x){ count++; for(j = i; j < size - 1; j++) Q[j] = Q[j + 1]; } } if(count){ size -= count; for(i = 0; i < size; i++) printf("%d ", Q[i]); putchar('\n'); } else{ size++; Q = realloc(Q, size * sizeof*Q); if(!Q){ fprintf(stderr, "Error allocate memory!"); exit(1); } for(i = 0; i < size; i++){ if(i == size - 1) Q[i] = x; printf("%d ", Q[i]); } putchar('\n'); } return 0; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д