Определить первое и последнее пропущенные числа и их позиции в ряду - 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 - временная переменная для обмена значениями
- В цикле выводятся на экран значения массива в исходном порядке.
- В цикле с помощью метода пузырька происходит сортировка массива по возрастанию.
- Выводится на экран отсортированный массив.
- В цикле ищется первое и последнее повторяющееся число и выводится на экран его значение и индекс.