Где может быть ошибка - C (СИ)

Формулировка задачи:

Ребята, где может быть проблема? Не могу найти! Программа работает не правильно, с данным массивом выводит ответ 2, а должен быть 3! И ещё кто знает как два цикла совместить в один?
{
    for(j=0;j<M;j++)
    {
        if(mas[i][j]>max1)
        {
            max1=mas[i][j];
            max1_row=i;
        }
    }
}
 
for(i=0;i<N;i++)
{
    for(j=0;j<M;j++)
    {
        if(mas[i][j]>max2 &&mas[i][j]<max1)
            {
                max2=mas[i][j];
                max2_row=i;
            }
    }
}
Вот само задание: На языке программирования C разработать и реализовать программу: Дана матрица А, состоящая из М строк и N столбцов. Элементы матрицы А являются различными натуральными числами. Если два самых больших числа матрицы А расположены в одной и той же строке, то вывести на экран номер этой строки, иначе – вывести сообщение «Нет».
#include <stdio.h>
#define N 3
#define M 4
 
int main()
{
int mas[N][M]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
int i,j,max1,max2,max1_row=0,max2_row=0;
 
max1=max2=mas[0][0];
for(i=0;i<N;i++)
{
    for(j=0;j<M;j++)
    {
        if(mas[i][j]>max1)
        {
            max1=mas[i][j];
            max1_row=i;
        }
    }
}
 
for(i=0;i<N;i++)
{
    for(j=0;j<M;j++)
    {
        if(mas[i][j]>max2 &&mas[i][j]<max1)
            {
                max2=mas[i][j];
                max2_row=i;
            }
    }
}
 
if(max1_row!=max2_row)
    printf("\nNET!");
else
    printf("Row = %d",max1_row);
return 0;
}

Код к задаче: «Где может быть ошибка - C (СИ)»

textual
printf("Row = %d",max1_row+1);
Эта работа вам не подошла?

Вы всегда можете заказать любую учебную работу у наших авторов от 20 руб.

9   голосов, оценка 3.778 из 5


СДЕЛАЙТЕ РЕПОСТ