Найти число и значения элементов массива, повторяющихся два раза - C (СИ)

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

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

1)дан массив целых чисел, найти число и значения элементов повторяющихся два раза 2)дан массив целых чисел,требуется сформировать новый массив содержащий элементы исходного массива,расположенных между первыми и вторыми элементами равных нулю нужно написать код на си пожалуйста объясните мне как это делается вообще в каком порядке что писать не понимаю массивы

Решение задачи: «Найти число и значения элементов массива, повторяющихся два раза»

textual
Листинг программы
#include <conio.h>
#include <iomanip>
#include <stdio.h>
 
void print(int* x,int n)
{
    for(int j=0;j<n;j++)
     printf("%i \t",*x++);
    printf("\n");
}
int main()
{
    int n,*m;
    int x=-1,y=-1;
    n=10;
    int a[n];
    for (int i=0;i<n;i++)
     a[i]=rand()%10;
 
    //a[9]=0;//умышленно сделать 9ый элемент нулевым
 
    print (a,n);
 
    for (int i=0;i<n;i++)
    {
        if(a[i]==0)
        {
            if(x==-1)
             x=i;
            else
             y=i;
 
            if (y!=-1)
             break;
        }
    }
 
    if(x==-1 || y==-1)
     return -1;
 
 
    printf("%i\t%i\n",x,y);
 
    //если элементов между нулевыми элементами нет
    if((y-x)==1)
     return -1;
 
    m=new int[y-x];
    int *k=m;
 
    for (int i=x+1;i<y;i++)
     *k++=a[i];
 
    //результирующий массив
    print (m,y-x-1);
}

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

Код выполняет следующие действия:

  1. Включает необходимые заголовочные файлы:
    • conio.h используется для работы с консолью, в частности, с функцией getch(), которая используется для получения ввода пользователя без вывода символа ввода.
    • iomanip.h используется для манипулирования выводом, в частности, для выравнивания вывода по левому краю.
    • stdio.h используется для ввода и вывода данных.
  2. Определяет функцию print(), которая принимает указатель на первый элемент массива и его размер в элементах. Функция выводит все элементы массива через табуляцию.
  3. Определяет функцию main(), которая является точкой входа в программу.
  4. Инициализирует переменные:
    • n инициализируется значением 10, что является размером массива a.
    • x и y инициализируются значениями -1, которые будут использоваться для отслеживания индексов первого и второго нулевых элементов в массиве.
    • a инициализируется случайными значениями от 0 до 9.
  5. Создает массив a[], заполняет его случайными значениями от 0 до 9.
  6. Проверяет наличие нулевых элементов в массиве:
    • Если встречается нулевой элемент, и это первый такой элемент, то его индекс сохраняется в x.
    • Если уже был найден первый нулевой элемент и встречается второй, то его индекс сохраняется в y.
    • Если y не равно -1, значит второй нулевой элемент не найден, и цикл прерывается.
  7. Проверяет наличие нулевых элементов между первыми двумя нулевыми элементами:
    • Если x и y не равны -1, значит между ними есть хотя бы один элемент, и программа возвращает -1.
  8. Выводит индексы первых двух нулевых элементов.
  9. Проверяет наличие элементов между нулевыми элементами:
    • Если y-x равно 1, значит между нулевыми элементами нет других элементов, и программа возвращает -1.
  10. Выделяет память под массив, содержащий только повторяющиеся элементы:
    • m указывает на начало нового массива.
    • y-x-1 определяет размер нового массива, который на единицу меньше, чем расстояние между нулевыми элементами, так как нулевой элемент уже есть в m.
  11. Копирует элементы из исходного массива в новый массив.
  12. Выводит новый массив.

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


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

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

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