Где может быть ошибка - C (СИ)
Формулировка задачи:
Ребята, где может быть проблема?
Не могу найти! Программа работает не правильно, с данным массивом выводит ответ 2, а должен быть 3!
И ещё кто знает как два цикла совместить в один?
Вот само задание:
На языке программирования C разработать и реализовать программу:
Дана матрица А, состоящая из М строк и N столбцов. Элементы матрицы А являются различными натуральными числами. Если два самых больших числа матрицы А расположены в одной и той же строке, то вывести на экран номер этой строки, иначе – вывести сообщение «Нет».
{
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;
}
}
}#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);
Объяснение кода листинга программы
- В данном коде используется функция printf, которая предназначена для вывода информации на экран.
- В качестве формата вывода используется строка
%d, которая указывает на то, что нужно вывести целое число. - Значение, которое нужно вывести, находится в переменной max1_row.
- К этому значению добавляется 1, чтобы получить номер строки, а не сам массив.
- Выводится сообщение
Row =с помощью функции printf. - В конце сообщения выводится значение переменной max1_row+1.