Где может быть ошибка - 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;
}

Решение задачи: «Где может быть ошибка»

textual
Листинг программы
printf("Row = %d",max1_row+1);

Объяснение кода листинга программы

  1. В данном коде используется функция printf, которая предназначена для вывода информации на экран.
  2. В качестве формата вывода используется строка %d, которая указывает на то, что нужно вывести целое число.
  3. Значение, которое нужно вывести, находится в переменной max1_row.
  4. К этому значению добавляется 1, чтобы получить номер строки, а не сам массив.
  5. Выводится сообщение Row = с помощью функции printf.
  6. В конце сообщения выводится значение переменной max1_row+1.

Оцени полезность:

9   голосов , оценка 3.778 из 5
Похожие ответы