Студопедия

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

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

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






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






    Сформировать новый массив 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 :: Мои Лекции
    Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
    Копирование текстов разрешено только с указанием индексируемой ссылки на источник.