Присвоить массиву те элементы, у которых следующий элемент больше - C (СИ)
Формулировка задачи:
Вводится ряд чисел, присвоить массиву те числа, у которых следующий элемент больше.
Например: 2, 3, 1, 6, 7, 3, 2, 5.
Переписываем: 2, 1, 6, 2
array[i] выводит верно, но newArray[j] те же значения не присваиваются.
Получается найти нужные элементы, но как переписать их в другой массив?
#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]);
Решение задачи: «Присвоить массиву те элементы, у которых следующий элемент больше»
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; }
Объяснение кода листинга программы
В этом коде:
- Объявлены массив v и указатель на массив v1. Размер массива v1 равен размерности массива v.
- Задаются переменные i, a, b, которые будут использоваться в программе.
- В цикле for происходит заполнение массива v. Пользователю предлагается ввести элемент массива, и он вводится с клавиатуры.
- В цикле for происходит вывод элементов массива v.
- В цикле for происходит проверка каждого элемента массива v. Если текущий элемент меньше следующего, то в массив v1 записывается адрес следующего элемента, и этот элемент выводится на экран.
- Программа заканчивается, и ее результат определяется как 0.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д