int max_i;
int max_j;
for
for
{
if(A[ i][j]>max)
{
max=A[ i][j];
max_i = i;
max_j = j;
}
}
Что не так с программой для задачи на С++?
Задача 2.1. Задана числовая матрица В. Написать функцию для нахождения значения максимального элемента матрицы и его индексов.
2.2. Найти максимальный элемент матрицы А и вычесть его из элементов всех столбцов, кроме того, в котором он находится.
Программа должна выглядеть примерно так:
#include <iostream>
#include <math.h>
using namespace std;
void c_one(int A[5][6], int max, int sum_ind)
{
int i,j;
max=A[1][1];
for(i=0; i<5; i++)
{
for(j=0; j<6; j++)
{
if(A[j]>max)
{
max=A[j];
}
}
sum_ind=i+j;
}
}
int main()
{
int i,j,max,sum_ind;
int A[5][6];
for(i=0; i<5; i++)
{
for(j=0; j<6; j++)
{
A[j]=rand()%10;
cout<< A[j]<<", ";
}
}
c_one(A,max,sum_ind);
cout<<"\n"<<"max="<<max<<"sum_ind="<<sum_ind;
cout<<"\n";
system("PAUSE");
return 0;
}
Когда приводите пример кода, соберите его в тег CODE. Это можно сделать, когда набираешь сообщение, выбрать фигурные скобки в меню набора сообщения.
1) Массивы в С++ индексируются с нуля. Поэтому выражение A[1][1] вернет вам не крайний элемент массива, как вы хотите. Нужно писать A[0][0]
2) Вот вы ищите максимальное число, и ищете его правильно. Но индексы... После выполнения циколв у вас i=5 и j = 6. При обращении к матрице с данными индексами вы получите исключение, сообщающее, что вы вышли за рамки массива. Когда вы нашли максимальный элемент, нужно запомнить индексы, на которых он достигается:
Код:
И зачем вам переменная sum_ind?
3) Самое главное. Когда в параметрах функции вы указываете просто int, то это называется передача параметров по значению. Значение копируется, и для функции оно будет свое. Когда Функция завершится, вы снова вернетесь к тому значению, которое было до вызова функции. Если вы хотите после функции иметь значение, которое там получили, то нужно параметры передавать по ссылке. Пишется это так: int&. Тогда копия элемента не создается, и вы работаете с той же переменной, что была до вызова функции.
Ну а кода для задачи 2.2 я не вижу. Вы смотрели ответ на ваш вчерашний вопрос?
Очень рекомендую прочитать первые 30 страниц Шилдта, самоучитель С++. Они ответят подробно на все ваши вопросы.