Другие языки программирования и технологии

задача на С++, нужна помощь в решении

В массиве А (N, N) определить произведение и количество положительных элементов, расположенных выше главной диагонали, найти максимальный среди диагональных элементов массива.
На С++ как можно реализовать данную задачу? Массив как сделать знаю, а дальше условия задачи задаются непонятно, как искать произведение и поиск положительных элементов, что выше главной диагонали... Помогите плиз, а то паника.
Изучи цикл for и массивы.
Костя Цибин
Костя Цибин
92 464
Лучший ответ
" выше главной диагонали... ", когда i> j
for (int i =0; i < n; i++)
for (int j =i+1; j < n; j++)
if (a[j, i] > 0)
{
p *= a[j, i];
s += a[j, i];
}
Тут есть два принципиальных затруднения: максимальный элемент главной диагонали может быть неединственным- поэтому надо вводить дополнительный массив размерности N( или динамический!) для хранения всех номеров диагонали с максимальным значением ( насколько я понял, надо ведь найти сам элемент, то есть его номер в диагонали, а не его значение!); вторая трудность- положительных элементов может быть очень много, да ещё и больших, поэтому не исключено переполнение. Так что цикл должен быть примерно такой:

max=-9.9999e300; p=0; for(k=0; k max){max=ak; kol=0; b[kol]=k;} if(ak==max){kol+=1;b[kol]=k;} for(l=k+1;l<n;l++)p+=log10(akl);}}

//Теперь все равные максимальные элементы содержатся в массиве b, а kol+1- их общее количество. Переменная р имеет смысл десятичного порядка искомого произведения положительных элементов матрицы выше главной диагонали.
Вова Шуляк
Вова Шуляк
28 648
Вова Шуляк Этот козлячий сайт даже не редактирует ошибки в коде, которые сам же и допустил! А у меня ошибок не было...
Если искать среди всех элементов матрицы без исключения, то так
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{ //тут ищем произведение/сумму/все что надо
}//end for j
}//end for i

а если выше главной диагонали
for(i=0;i<N;i++)
{
for(j=i+1;j<N;j++)// если внимательно сравните, то увидите, что разница только в начальном значении j
{ //тут ищем произведение/сумму/все что надо
}//end for j
}//end for i
Игорь Галай
Игорь Галай
15 714