Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 05.05.2014
Сообщений: 11
1

Где может быть ошибка

22.05.2014, 17:02. Показов 1130. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ребята, где может быть проблема?
Не могу найти! Программа работает не правильно, с данным массивом выводит ответ 2, а должен быть 3!
И ещё кто знает как два цикла совместить в один?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{
    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 столбцов. Элементы матрицы А являются различными натуральными числами. Если два самых больших числа матрицы А расположены в одной и той же строке, то вывести на экран номер этой строки, иначе – вывести сообщение «Нет».

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#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;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.05.2014, 17:02
Ответы с готовыми решениями:

Где здесь может быть ошибка?
Подскажите пж, Где здесь может быть ошибка? #include &lt;stdio.h&gt; void main() { char text...

Ошибка - функция не может быть перегружена
Добрый вечер! Первый раз пишу на этом форуме, я новичок, так что как можно понятнее объясняйтесь,...

Ошибка: память не может быть read
В общем есть программка: пингует несколько ip-адресов. когда использую компилятор C++ всё работает....

В чем может быть ошибка? Нахождение третьего по величине элемента во второй половине массива
Читала, что для массивов нужно грамотно выделять память, эффективней всего динамическую. Честно...

5
Модератор
Эксперт по электронике
8947 / 6713 / 921
Регистрация: 14.02.2011
Сообщений: 23,690
22.05.2014, 17:04 2
Лучший ответ Сообщение было отмечено Moln_den как решение

Решение

Цитата Сообщение от Moln_den Посмотреть сообщение
max1_row=i;
здесь точно i ???
максимум то ищешь по j
0
0 / 0 / 0
Регистрация: 05.05.2014
Сообщений: 11
22.05.2014, 17:07  [ТС] 3
Что i, что j ответ должен быть три! А он два)
Я плохо разбираюсь в это)
0
Модератор
Эксперт по электронике
8947 / 6713 / 921
Регистрация: 14.02.2011
Сообщений: 23,690
22.05.2014, 17:08 4
Лучший ответ Сообщение было отмечено Moln_den как решение

Решение

Цитата Сообщение от Moln_den Посмотреть сообщение
Программа работает не правильно, с данным массивом выводит ответ 2, а должен быть 3!
Цитата Сообщение от Moln_den Посмотреть сообщение
int mas[N][M]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
где тут 3 то???
отсчет в Си с 0 идет
первая строчка 0
вторая строчка 1
третья строчка 2
т.е все правильно
если хочешь "человеческий вывод" то добавь 1
C
1
printf("Row = %d",max1_row+1);
0
0 / 0 / 0
Регистрация: 05.05.2014
Сообщений: 11
22.05.2014, 17:13  [ТС] 5
Ооооо) Спасибо) Не знал об этом)) Красавчик, выручил)) А можешь ещё посоветовать как циклы в один объединить?
0
Модератор
Эксперт по электронике
8947 / 6713 / 921
Регистрация: 14.02.2011
Сообщений: 23,690
22.05.2014, 17:17 6
Цитата Сообщение от Moln_den Посмотреть сообщение
А можешь ещё посоветовать как циклы в один объединить?
никак
иначе придется использовать вспомогательный массив и сложный поиск
в первом цикле ищется максимум
а во втором "максимум без максимума"
самое простое решение
0
22.05.2014, 17:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.05.2014, 17:17
Помогаю со студенческими работами здесь

Подскажите, где может быть ошибка (структуры)? (скорее всего где-то амперсенд нужен, все вроде проверил)
написать универсальный тип, который представляет точку на плоскости в координатах (х, у) и в...

Где может быть ошибка?
#include &lt;iostream&gt; #include &lt;queue&gt; #include &lt;string&gt; using namespace std; int main(){ ...

Где может быть ошибка?
Уважаемые форумчане, столкнулся со следующей проблемой... Написал макрос, в котором в столбце AK...

Где может быть ошибка?
Здравствуйте, есть файл Prepods.xml вот его содержимое: &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru