Найти индексы первого и последнего вхождения заданного целого числа N в последовательность - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Найти индексы первого и последнего вхождения заданного целого числа N в последовательность целых чисел, которая сохраняется в динамическом массиве. Количество элементов и их значения вводятся с клавиатуры. Ввода и вывода массива реализовать отдельными функциями.

Решение задачи: «Найти индексы первого и последнего вхождения заданного целого числа N в последовательность»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h> 
 
void vvod(int* array, int size) 
{  
    int i; 
    for ( i = 0; i < size; ++i) 
    { 
        printf("Inter elememt "); 
        scanf("%d", &array[i]); 
    }
}
 
void vivod(int* array, int size) 
{ 
    int i; 
 
    for ( i = 0; i < size; ++i)
        printf("%d ", array[i]);  
    printf("\n");
}
 
 
int main(void) 
{ 
    int N, size, index_f = -1, index_l = -1, i;  
    int* array;
    printf("Inter size of array\n"); 
    scanf("%d",&size); 
 
    array = (int*) malloc(size+1); 
    vvod(array, size);  
    vivod(array, size);
    printf("Inter N "); 
    scanf("%d",&N);  
 
    for ( i = 0; i < size; ++i) 
        if(array[i] == N) 
        { 
            index_f = i; 
            break; 
        } 
 
        for ( i = size; i >= 0; i--) 
            if(array[i] == N) 
            { 
                index_l = i; 
                break;
            } 
 
            if(index_f == -1 || index_l == -1) 
                printf("No number\n"); 
            else 
            { 
                printf("first index %d\n", index_f); 
                printf("last index %d\n", index_l); 
            } 
 
}

Объяснение кода листинга программы

Код начинается с подключения двух библиотек: stdio.h и stdlib.h. Далее следуют четыре функции:

  1. *vvod(int array, int size)** - ввод элементов массива с помощью функции scanf.
  2. *vivod(int array, int size)** - вывод элементов массива с помощью цикла for и функции printf.
  3. main(void) - главная функция программы, в которой происходит основная логика.
  4. free(array) - освобождение памяти, выделенной под массив. В функции main после ввода размера массива и самого массива, вводится искомое число N. Далее, в два прохода, ищутся индексы первого и последнего вхождения числа N в массив. Если оба индекса найдены, выводится сообщение с найденными индексами. Если не найден один из индексов, выводится сообщение No number. Примечание: код не проверяет на достаточность памяти при выделении массива, а также не проверяет корректность ввода размера массива и числа N.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.333 из 5
Похожие ответы