Студопедия

КАТЕГОРИИ:

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


Пример выполнения задания. В целочисленном двухмерном динамическом массиве (матрице) размером N´М найти сумму четных элементов и их количество




В целочисленном двухмерном динамическом массиве (матрице) размером N´М найти сумму четных элементов и их количество. Ввод исходных данных (размеры массива и его элементы) и вывод результатов выполнить в основной функции. Решение поставленной задачи оформить в фунции пользователя.

Текст программы может иметь следующий вид:

#include <iostream.h>

#include <conio.h>

int Fun_Sum_Kol(int, int, int**, int*); // Описание прототипа функции

void main()

{

int **a, i, j, n, m, sum, kol;

cout << "\t Input N, M : ";

cin >> n >> m;

a = new int*[n]; // Захват памяти под указатели

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

a[i] = new int[m]; // Захват памяти под элементы

cout <<"\n Input A" << endl;

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

for(j=0; j<m; j++){

cout << "\t a[" << i+1 << "][" << j+1 << "] = ";

cin >> a[i][j];

}

cout <<"\n Matrix A:" << endl;

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

for(j=0; j<m; j++)

cout << "\t" << a[i][j];

cout << endl;

}

// Обращение к функции с указанием фактических аргументов

sum = Fun_Sum_Kol(n, m, a, &kol);

cout << "\n Kol-vo = " << kol << "\t Summa = " << sum << endl;

delete []a; // Освобождение памяти

cout << "\n\t Delete !" << endl;

cout << " Press any key ... " << endl;

getch();

}

/* Реализация описанной выше функции, в заголовке которой указаны формальные параметры, идентификаторы которых обрабатываются в ее коде */

int Fun_Sum_Kol(int a, int b, int **x, int *k)

{

int i, j, s = 0;

*k = 0;

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

for(j=0; j<b;j++)

if(x[i][j] % 2 ==0){

(*k)++; // Скобки обязательны

s += x[i][j];

}

return s;

}

 

Обратите внимание на то, что из функции мы должны получить два скалярных результата – посчитанные сумму и количество четных чисел. С помощью оператора return мы возвращаем первое значение (сумму), а второе значение мы передаем в точку вызова с помощью указателя (адреса): при обращении к функции в качестве четвертого параметра передаем адрес &kol, а в функции используем «содержимое, находящееся по указанному адресу» *k ( * – операция разадресации).

При вводе значений элементов массивов в одной строке через пробелы должен получиться следующий результат:


Поделиться:

Дата добавления: 2015-09-15; просмотров: 122; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.005 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты