Определить первое и последнее пропущенные числа и их позиции в ряду - C (СИ)
Формулировка задачи:
Здравствуйте!
Дан фрагмент натурального ряда чисел, в котором некоторые числа отсутствуют.
Определить:
1) Первое и последнее пропущенные числа и их позиции в ряду;
2) Все пропущенные числа и их позиции
{0, 11, 5, 8, 12, 6, 7, 14, 9, 1, 4, 5, 3, 2} - фрагмент натурального ряда в произвольном порядке
Решение задачи: «Определить первое и последнее пропущенные числа и их позиции в ряду»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #define SIZE 13 int main() { int a [SIZE] = {0, 11, 5, 8, 12, 6, 7, 14, 9, 1, 4, 3, 2}; int i,j, pass, hold; printf("Dannye v nachalnom poryadke\n"); for (i = 0; i <= SIZE - 1; i++) printf("%4d", a[i]); for (i = 0; i <SIZE; i++) { for(j=i; j<SIZE; j++) { if (a[i] > a[j]) { hold = a[i]; a[i] = a[j]; a[j] = hold; } } } printf(" \nDannye v novom poryadke\n"); for (i = 0; i <= SIZE - 1; i++) printf("%4d", a[i]); printf("\n"); pass=0; for(i=0; i<SIZE-1; i++) { while(a[i]==pass) { i++; pass++; } printf("Lost = %d, index = %d\n",pass,i); pass++; i--; } return 0; }
Объяснение кода листинга программы
В данном коде реализована сортировка массива методом пузырька. Также, после сортировки, ищется первое и последнее повторяющееся число и выводится на экран его значение и индекс.
- Объявлены переменные: — a - массив, содержащий 13 чисел, инициализированный значениями {0, 11, 5, 8, 12, 6, 7, 14, 9, 1, 4, 3, 2} — i, j - индексы для обхода массива — pass - счётчик для поиска повторяющихся чисел — hold - временная переменная для обмена значениями
- В цикле выводятся на экран значения массива в исходном порядке.
- В цикле с помощью метода пузырька происходит сортировка массива по возрастанию.
- Выводится на экран отсортированный массив.
- В цикле ищется первое и последнее повторяющееся число и выводится на экран его значение и индекс.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д