Сформировать новый массив из положительных нечетных элементов заданного массива Р - C (СИ)

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

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

Сформировать новый массив из положительных нечетных элементов заданного массива Р (20). Использую генератор случайных чисел.
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#define N 20
 
int main() 
{
    int i; 
    int m[N];
    srand(time(NULL));
    printf("m: ");
    for(i = 0; i < N; i++) 
    {
        m[i] = rand()%100+1;
        printf("%i ",m[i]);
    }
    //Нахождение элементов массива m, у которых остаток от деления на 2 не равняется 0//
    for(i=0;i<N;i++)
    {
        if (m[i]%2!=0&&m[i]>0) 
            k+=1;
        printf("%d",k);
}
    //Формируем новый массив из нечетных элементов k//
    int p[K];
    for (i=1;i<K;i++)
    {
        if (m[i]%2!=0,m[i]>0) 
        {
            p[K]=m[i];
            K+=1;}
        for(i = 0; i < K; i++)
        printf("p: ");
    }
    return 0;
}
Пробовал, но ничего не получается...

Решение задачи: «Сформировать новый массив из положительных нечетных элементов заданного массива Р»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N   20
 
int main()
{
    int P[N], *tmp, size = 0;
 
    for (int i = 0; i < N; ++i)
    {
        P[ i ] = rand() % 100;
 
        if(P[ i ] % 2)
        {
            ++size;
            if (size == 1)
            {
                tmp = malloc(sizeof(int));
                if ( !tmp )
                    exit( -1 );
                tmp[ size - 1] = P[ i ];
            }
            else
            {
                tmp = realloc(tmp, size * sizeof(int));
                if ( !tmp )
                    exit( -1 );
                tmp[ size - 1] = P[ i ];
            }
        }
        printf("%d ", P[ i ]);
    }
    puts("");
    for (int i = 0; i < size; ++i)
        printf("%d ", tmp[ i ]);
    puts("");
 
    return 0;
}

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

  1. Включаем необходимые заголовочные файлы для работы с консолью, генерацией случайных чисел и управлением памятью.
  2. Определяем константу N, которая задает размер массива P.
  3. В цикле формируем массив P из N элементов, используя генератор случайных чисел.
  4. Проверяем каждый элемент массива на нечетность и если элемент нечетный, то сохраняем его в динамически выделяемом массиве tmp.
  5. Увеличиваем размер массива tmp на 1 и проверяем, достаточно ли выделенной памяти.
  6. Если размер массива tmp становится равным N, то выводим все его элементы на экран.
  7. Выводим на экран все элементы массива P.

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


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

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

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