Где может быть ошибка - 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д