Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Листинг 7.3



#include <iostream.h>

int n posit(const int *a, const int n);

int main()

{

int I, n;

cout «"Введите количество элементов:”:cin» n;

int *a = new int[n];

int*b = new int[n];

cout «"Введите элементы первого массива: ";

for (i = 0; i< n; i++) cin» a[i];

cout «"Введите элементы второго массива: ";

for (i = 0; i< n; i++) cin» b[i];

if (n posit(a, n) > n posit(b, n))cout «" В первом положительных больше” «endl;

else if(n posit(a, n) < n_posit(b, n)) cout «" Во втором положительных больше" «endl;

else cout «" Одинаковое количество" «endl;

return 0;

int n posit(const int *a, const int n)

{

int count = 0;

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

if (a[i] > 0) count++;

return count;

}

}

В этой программе место под массивы выделяется в динамической области памяти, поскольку в задании не указано конкретное количество элементов. Однако функ­цию nposit можно без изменений применять и для «обычных» массивов, потому что для каждого из них имя тоже является указателем на нулевой элемент, только константным. Например, опишем массив из 10 элементов и инициализируем пер­вые шесть из них (оставшимся будут присвоены нулевые значения):

int х[10] = {2, 3. -1, -10, 4, -2};

cout «n_posit(x. 10); //будет выведено значение 3

Рассмотрим способ анализа результатов работы функции. Функция вызывается в составе выражения в условном операторе. Для пере­бора всех трех вариантов результата приходится вызывать ее для каждого массива дважды, что для больших массивов, конечно, нерационально. Чтобы избежать по­вторного вызова, можно завести две переменные, в которые записываются резуль­таты обработки обоих массивов, а затем использовать эти переменные в условных операторах:

int n posit a = n posit(a. n), n posit b = n posit(b, n);

if (n posit a > n posit b) cout «" В первом положительных больше" «endl;

else if (n posit a < n posit b) cout «" Во втором положительных больше" «endl;

else cout «" Одинаковое количество" «endl;

Современные компиляторы обладают широкими возможностя­ми оптимизации и сами отслеживают подобные ситуации, преобразуя код програм­мы, но это не означает, что на эффективность своих программ вообще не надо обращать внимания. Главным же критерием при выборе варианта написания про­граммы, тем не менее, остается простота ее структуры и читаемость.





Дата публикования: 2015-10-09; Прочитано: 213 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...