Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
gudovanets
1 / 1 / 0
Регистрация: 12.02.2015
Сообщений: 45
#1

Ошибка в поэлементном сравнении элементов матрицы - C++

28.09.2016, 01:40. Просмотров 85. Ответов 2
Метки нет (Все метки)

не правильно сравнивает, помогите исправить. что с условием сделать, чтобы сравнивало поелементно каждую строку.
Т.е. при сравнении 1 и 2 строк, получим,что 2>1, 5>4, но 3 меньше 5 следовательно строка 1 не больше строки 2.
а тут выводит, что больше... не понимаю как изменить.


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream> 
using namespace std;
 
int main() {
    const int n = 3, m = 4;
    int a[n][m] = {
        { 2,5,3,4 },
        { 1,4,5,3 },
        { 1,3,5,2 }
    };
    for (int i = 0; i<n - 1; i++)
        for (int j = i + 1; j<n; j++) {
            int r = 0;
            for (int k = 0; k<m; k++) if (a[i][k] > a[j][k]){ r = 1; break; }
            cout << "strings " << i << " and " << j << " are " <<
                (r ? "pervay >" : "pervay<") << " " << endl;
        }
    cin.get(); cin.sync(); return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.09.2016, 01:40     Ошибка в поэлементном сравнении элементов матрицы
Посмотрите здесь:

C++ Ошибка при сравнении символов
Сформировать массив сумм элементов столбцов матрицы (где ошибка?) C++
Ошибка при сравнении элемента динамического массива с числом C++
Зацикливание при сравнении строк C++
Ошибка при сравнении типа char C++
Ошибка в сравнении символов C++
Некоректный инкремент переменной цикла for при сравнении элементов массива C++
C++ Ошибка в сравнении глобальных переменных в функциях
C++ Сформировать суммы элементов строк матрицы и суммы элементов столбцов матрицы
Найти сумму элементов квадратной матрицы (не могу понять в чём ошибка) C++
C++ Ошибка при сравнении введённых данных
Количество позитивных элементов матрицы, функция. Ошибка вывода C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SpBerkut
Объявлятель переменных
908 / 234 / 113
Регистрация: 24.09.2011
Сообщений: 875
Завершенные тесты: 2
28.09.2016, 07:57     Ошибка в поэлементном сравнении элементов матрицы #2
Дык.
Цитата Сообщение от gudovanets Посмотреть сообщение
C++
1
for (int k = 0; k<m; k++) if (a[i][k] > a[j][k]){ r = 1; break; }
Вы сравнили первый элемент и по break вышли. Перепишите 13 и 14 строки так:
C++
1
2
int r = 1;
for (int k = 0; k<m; k++) r *= a[i][k] > a[j][k];
gudovanets
1 / 1 / 0
Регистрация: 12.02.2015
Сообщений: 45
28.09.2016, 10:46  [ТС]     Ошибка в поэлементном сравнении элементов матрицы #3
SpBerkut, все правильно находит, только сравнивает парами ( 1, 2) (1,3) ....(2,6) ....
а нужно чтобы еще сравнила наоборот, (2,1)... (6,2), (7,3)
потому что есть же и наоборот большие
т.е. 6 больше 2 строки
7больше 3й строки
Yandex
Объявления
28.09.2016, 10:46     Ошибка в поэлементном сравнении элементов матрицы
Ответ Создать тему
Опции темы

Текущее время: 22:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru