Консультация № 160557
15.02.2009, 21:28
0.00 руб.
0 1 1
Здравствуйте, Дорогие Эксперты!Помогите, пожалуйста, решить задачу:
Даны вещественные массивы A[5][4], D[5][4]. Для каждого
массива опpеделить количество элементов, значения котоpых
меньше сpеднего аpифметического значения всех элементов
массива.


Приложение:
Имеется приложение:

Условие задачи - Даны целые массивы A[14], D[14]. Для каждого
массива опpеделить количество элементов, пpедшествующих
наименьшему элементу массива.

В данной задаче должны быть реализованы такие действия:
1. Ввод исходных массивов.
2. Определение количества элементов, предшествующих наименьшему
элементу массива.
результата.
3. Вывод на экран исходного массива и полученного
Каждое действие оформим в виде отдельной функции.
Пусть:
inputmas() - функция ввода массива
schet() - функция определения количества элементов до наименьшего
(данная функция должна посредством инструкции return
возвращать результат работы в точку вызова фунции)
outrez() - функция вывода исходного массива и полученного результата

Текст программы
#include <iostream.h>
#include <iomanip.h>
// прототипы функций
void inputmas( int [14], char );
int schet( int [14] );
void outrez( int [14], char, int );

void main()
{
// объявление массивов и переменных
int a[14], d[14], kola, kold;

// обращение
inputmas(a, 'a'); // в функцию в качестве аргументов передается
inputmas(d, 'd'); // массив и его имя (символ в апострофах)

kola = schet( a ); // вызов функции, возвращающей одно значение
kold = schet( d );

outrez(a, 'a', kola);
outrez(d, 'd', kold);
}

// определение функции ввода массива input()
void inputmas ( int x[14], char name)
{
int i;
cout << "Вводим массив " << name << endl;



for (i=0; i<14; i++)
{
cout << " Введите элемент массива " << name << "[" << i << "]=";
cin >> x[i];
}
}

функции schet()
// определение расчетной
int schet ( int m[14] )
{
int i, kol, min;
min = m[0]; // первоначально за минимальное примем 1-й элемент
kol = 0; // кол-во элементов, предшествующих минимальному
for (i=1; i<14; i++)
if ( m[i] < min )
// нашли в массиве элемент, значение которого меньше
// значения принятого за минимум
{
min = m[i]; // заменили значение минимума
kol = i; // количество элементов, предшествующих мин
}
return (kol); // передача значения в точку вызова данной фу
}

// определение функции вывода массива outrez()
void outrez ( int x[14], char name, int kol)
{
int i;
cout << " Исходный массив " << name << ":" << endl;
for (i=0; i<14; i++)
cout << setw(5) << x[i];
cout << "Наименьшему элементу в массиве " << name <<
" предшествует " << kol << " элемента(ов) \n";
}

Обсуждение

Неизвестный
15.02.2009, 22:09
общий
это ответ
Здравствуйте, Сидорова Юлия Евгеньевна!

Вот решение.

Приложение:
#define M 5
#define N 4

#include <iostream>
using namespace std;

void ArrayInput(double arr[M][N], const char* arrayName)
{
cout << "Enter array " << arrayName << ":" << endl;
for (int i=0; i<M; ++i)
{
for (int j=0; j<N; ++j)
{
cout << arrayName << "[" << i << "][" << j << "]:";
cin >> arr[i][j];
}
}
}

double Average(double arr[M][N])
{
double sum = 0;
for (int i=0; i<M; ++i)
{
for (int j=0; j<N; ++j)
{
sum += arr[i][j];
}
}

return sum / (M * N);
}

int LessThanAverage(double arr[M][N])
{
double average = Average(arr);

int count = 0;
for (int i=0; i<M; ++i)
{
for (int j=0; j<N; ++j)
{
if (arr[i][j] < average) count++;
}
}

return count;
}

void main(int argc, char ** argv)
{
double A[M][N], D[M][N];
ArrayInput(A, "A");
ArrayInput(D, "D");

cout << "Count of element less than average in array A:"
<< LessThanAverage(A) << endl;
cout << "Count of element less than average in array D:"
<< LessThanAverage(D) << endl;
}
Форма ответа