![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
В целочисленном двухмерном динамическом массиве (матрице) размером 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-02-22; Прочитано: 221 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!