вторник, 23 июня 2009 г.

поиска двух строк с минимальным/максимальным значением среднего арифметического

Дана числовая таблица С размером N*N. Составить программу поиска двух строк по следующему алгоритму : одной - с минимальным значением среднего арифметического (SR), другой - с максимальным значением SR. Если номер строки с минимальным значением SR больше номера строки с максимальным SR, то обе строки удалить . В противном случае - элементы найденных строк поменять местами. Преобразованную таблицу выдать на экран построчно.


напишем функцию для вычисления среднего арифметического для заданной строки

int get_sr(int j)
{
int sr = 0;
for (int i = 0; i < N; i++)
{
sr += C[j][i];
}

return sr / N;
}


найдём заданные минимум и максимумы

 int max_sr;
int nomer_max_sr;

int min_sr;
int nomer_min_sr;

nomer_max_sr = nomer_min_sr = 0;
max_sr = min_sr = get_sr(0);

for (int j=1; j < N; j++)
{
int sr = get_sr(j);

if (sr < min_sr)
{
min_sr = sr;
nomer_min_sr = j;
continue;
}

if (sr > max_sr)
{
max_sr = sr;
nomer_max_sr = j;
continue;
}
}



а так меняем местами значения строк

  for (int i=0; i < N; i++)
{
int temp = C[nomer_min_sr][i];
C[nomer_min_sr][i] = C[nomer_max_sr][i];
C[nomer_max_sr][i] = temp;
}



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

Комментариев нет:

Отправить комментарий