Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Формирование одномерного массива из другого одномерного массива






Сформировать новый массив B, включив в него все положительные элементы исходного массива A, и вывести его на экран.

Пусть есть массив A[N]. Надо выбрать из него все положительные элементы и записать их в новый массив, который и будет дальше использоваться. Сначала надо определить, сколько места в памяти надо выделить для массива B. В «худшем» случае все элементы в массиве Aбудут положительными и войдут в массив B, поэтому массив Bдолжен иметь такой же размер, что и массив A. Можно предложить такой способ: просматривать весь массив A, и если для очередного элемента A[i]> 0, то его значение копируется в B[i].

 

Однако в этом случае использовать такой массив Bочень сложно, потому что нужные элементы стоят не подряд. Есть более красивый способ. Объявляем временную переменную-счетчик count, в которой будем хранить количество найденных положительных элементов. Сначала она равна нулю. Если нашли очередной положительный элемент, то ставим его в ячейку B[count] и увеличиваем счетчик. Таким образом, все нужные элементы стоят в начале массива B.

#include< stdio.h>

const int n=10;

void main()

{ int i, a[n], b[n], count=0;

… // здесь нужно ввести массив a

for (i=0; i< n; i++)

if (a[i]> 0)

{ b[count]=a[i]; count++; } // или b[count++]=a[i];

puts(“Result: “);

for (i=0; i< count; i++)

printf (“%d\t”, b[i]);

}






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.