поиск максимального элемента каждой строки матрицы

Не в сети
Зарегистрирован: 12/23/2010

 вот что имеется:


#include <iostream.h>
#include <iomanip.h>
#include <math.h>
int main()
{
double **a, tmp;
int i, j, n, m, imax, jmax;
cout << "Vvedite razmer: n, m" << endl;
cin >> n >> m;
a = new double*[n]; // Выделение памяти под массив указателей
for(i=0; i<n; i++) // Выделение памяти под соответствующие
a[i] = new double[m]; // этим указателям строки матрицы
for (i=0; i<n; i++) // Ввод двумерного массива
for (j=0; j<m; j++)
{
cout << "Vvedite a[" << i << "][" << j << "]: " ;
cin >> a[i][j];
}
cout << "Мassiv A:" << endl; // Вывод двумерного массива
for (i=0; i<n; i++)
{
for (j=0; j<m; j++)
cout << setw (9) << a[i][j] << " ";
cout << endl;
}
imax=jmax=0; // Поиск индексов минимального и
for (i=0; i<n; i++)
//{a[imax][jmax]=a[i][1];} // максимального элементов массива
for (j=0; j<m; j++)
{
if (a[0][j]>a[imax][jmax]) { imax=0;
jmax=j;
}
}
//tmp = a[imin][jmin]; // Перестановка элементов
//a[imin][jmin] = a[imax][jmax];
//a[imax][jmax] = tmp;
cout << "Result :" << endl; // Вывод результата
for (i=0; i<n; i++)
{
//for (j=0; j<m; j++)
cout << setw (9) << a[imax][jmax] << " ";
cout << endl;
}
for(i=0; i<n; i++) // Освобождение выделенной памяти
delete [] a[i];
delete []a;
a = NULL;
return 0;
}
 

проблема в том что ищет только макс. эл-т по первой строке. как сделать чтобы находил макс. эл-т каждой строки?

Аватар пользователя Илья
Не в сети
Зарегистрирован: 04/21/2009

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

Аватар пользователя Илья
Не в сети
Зарегистрирован: 04/21/2009

{
if (a[0][j]>a[imax][jmax]) { imax=0;
jmax=j;
}

почему здесь a[0][j] ??????

попробуй так
{
if (a[i][j]>a[imax][jmax]) { imax=i;
jmax=j;
}

Аватар пользователя Nexus.
Не в сети
Зарегистрирован: 12/23/2010

не смотрел твой код)
вот мой) http://freespace.by/download/b6f91ed035
сюда почемуто влазила только часть проги)
все работает)
блин) индексы только сейчас заметил) ну там сам уже допишешь

Не в сети
Зарегистрирован: 09/10/2012

не обязательно запоминать i-ый индекс каждого элемента строки ,только потом при выводе не ошибиться в цикле , то есть нужно запоминать только j-ый индекс , для этого нужен еще один массив , скажем C
int *c;
c=new int[n];
for(i=0;i