Поменять местами первый и последний элементы последовательности - C (СИ)
Формулировка задачи:
Есть у меня задание, вот только не совсем понимаю принцип работы с файлами...
Дана последовательность a1...a50. Поменять местами первый и последний элементы, и если в последовательности есть равные им элементы, то их удалить.
Помогите хоть с последовательностью действий. Заранее благодарен.Решение задачи: «Поменять местами первый и последний элементы последовательности»
textual
Листинг программы
#include <stdlib.h> #include <stdio.h> #include <time.h> enum{ MAX_SIZE = 50 }; int main(void){ int v[MAX_SIZE]; srand(time(0)); for (int i = 0; i < MAX_SIZE; ++i) printf("%d ", v[i] = rand() % 20); printf("\n"); int pos = 1; for (int i = 1; i < MAX_SIZE - 1; ++i){ if ((v[i] != v[0]) && (v[i] != v[MAX_SIZE-1])) v[pos++] = v[i]; } int t = v[0]; v[0] = v[MAX_SIZE-1]; v[pos++] = t; for (int i = 0; i < pos; ++i) printf("%d ", v[i]); printf("\n"); return EXIT_SUCCESS; }
Объяснение кода листинга программы
Вывод программы: [...] 5 15 10 2 12 18 1 11 6 16 3 14 7 17 9 8 4 13 20 19 16 10 5 Описание действий программы:
- Включаем необходимые заголовочные файлы для работы со стандартными функциями, генерацией случайных чисел и временем.
- Определяем максимальное количество элементов в массиве.
- Создаем массив типа int с максимальным размером.
- Заполняем массив случайными числами от 0 до 19 с помощью функции rand() и оператора % (возвращает остаток от деления).
- Выводим заполненный массив на экран.
- Инициализируем переменную pos для хранения индекса первого элемента, который нужно поменять местами.
- Находим два последних элемента массива, которые не равно нулю (т.е. не являются
пустыми
значениями). - Перемещаем элементы, начиная с индекса pos, в указанные ячейки.
- Меняем местами первый и последний элементы массива.
- Выводим измененный массив на экран.
- Завершаем программу с кодом EXIT_SUCCESS.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д