Присвоить массиву те элементы, у которых следующий элемент больше - C (СИ)

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

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

Вводится ряд чисел, присвоить массиву те числа, у которых следующий элемент больше. Например: 2, 3, 1, 6, 7, 3, 2, 5. Переписываем: 2, 1, 6, 2
Получается найти нужные элементы, но как переписать их в другой массив?
#pragma hdrstop
#pragma argsused
 
#include <stdio.h>
#include <conio.h>
 
int main() {
    int x = 0, i = 0;
    int array[100];
    char ans;
    do {
        printf("Array size: ");
        scanf("%d", &x);
        printf("\nFill the array: \n");
        for (i = 0; i < x; i++) {
            printf("%d. element: ", i);
            scanf("%d", &array[i]);
        }
 
        for (i = 0; i < x; i++) {
            printf("Array[%d]:  %d\n", i, array[i]);
        }
 
        for (i = 0; i < x; i++)
            if (array[i] < array[i + 1])
                printf("%d", i);
 
        printf("\nRepeat? Yes - y ");
        flushall();
        scanf("%c", &ans);
        clrscr();
    }
    while (ans == 'y' || ans == 'Y');
}
Пробую писать так:
        for (i = 0; i < x; i++)
            if (array[i] < array[i + 1])
                printf("%d", array[i]);
        array[i] = newArray[j];
        printf("\n%d", newArray[j]);
array[i] выводит верно, но newArray[j] те же значения не присваиваются.

Решение задачи: «Присвоить массиву те элементы, у которых следующий элемент больше»

textual
Листинг программы
#include <stdio.h>
#define X 100
int v[X];
int *v1[X];
int i, a, b = 0;
int main(void)
{
    printf("Array size: ");
    scanf("%d", &a);
    printf("\nFill the array: \n");
    for ( i = 0; i < a; i++)
    {
        printf(" %4d element: ", i);
        scanf("%d", &v[i]);
    }
    printf("\n");
    for (i = 0; i < a; i++)
        printf(" %4d ", v[i]);
 
    printf("\n\n"); 
    for (i = 0; i < a - 1; i++)
    {
        if (v[i] < v[i + 1])
        {
            v1[b] = &v[i];
            printf(" %4d ", *v1[b]);
            b++;
        }
    }
    printf("\n");
    return 0;
}

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

В этом коде:

  1. Объявлены массив v и указатель на массив v1. Размер массива v1 равен размерности массива v.
  2. Задаются переменные i, a, b, которые будут использоваться в программе.
  3. В цикле for происходит заполнение массива v. Пользователю предлагается ввести элемент массива, и он вводится с клавиатуры.
  4. В цикле for происходит вывод элементов массива v.
  5. В цикле for происходит проверка каждого элемента массива v. Если текущий элемент меньше следующего, то в массив v1 записывается адрес следующего элемента, и этот элемент выводится на экран.
  6. Программа заканчивается, и ее результат определяется как 0.

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


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

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

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