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

Найти и вывести индексы всех седловых точек матрицы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Debug Assertion failed. Line 77. Expression (stream!=0) http://www.cyberforum.ru/cpp-beginners/thread1181518.html
Подскажите, пожалуйста, в чем заключается ошибка. Запускается, начинает работать, а потом пишет Debug Assertion failed. Line 77. Expression (stream!=0). #include <stdio.h> #include...
C++ Аналог функции из c# в c++ Привет, пишу собственный компонент на c++ (написал раньше на c#, щас перевожу) Есть функция, которая отвечает за цвет фона. public Color BACK_COLOR { get { ... http://www.cyberforum.ru/cpp-beginners/thread1181510.html
Сортировка по алфавиту вставками C++
Здравствуйте. У меня имеется алгоритм сортировки вставками, написанный на Паскале, я его вроде перевела в С++, но возникла проблема при переводе одной строки (26), т. к. мне нужно сортировать строки,...
Найти все натуральные числа, меньшие чем N, для которых выполняется соотношение C++
Составьте программу, которая находит все натуральные числа, меньшие чем N, для которых выполняется соотношение a^2 + b^2 = c^2.
C++ Создать шаблонный класс С++ http://www.cyberforum.ru/cpp-beginners/thread1181504.html
Помогите пожалуйста, нужно на завтра, очень прошу! Во время выполнения работы необходимо на языке C + + создать шаблонный класс, который представляет двумерный массив (матрицу). Класс должен...
C++ не работает matrix[i + 1][j] int matrix, i, j; for (i = 0; i < i_max; i++) for (j = 0; j < j_max; j++) if (matrix == 1) { matrix = 0; matrix = 1;//почему это не работает? } подробнее

Показать сообщение отдельно
lawr
366 / 260 / 124
Регистрация: 09.05.2014
Сообщений: 769
24.05.2014, 16:57
лень было разбираться, накатал свой вариант. будут неясности- пиши.
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include <iostream>
using namespace std;
void main()
{
    setlocale(LC_ALL, "Russian"); //подключение проддержки русского языка
    const int size=5; //обьявление размерности массива
    int Ar[size][size]; //обьявление массива
    bool ver; //проверочная переменная
    int i, j, m, n, sum, min, max; //переменные
    cout<<"введите квадратную  матрицу размерности "<<size<<"\n"; //запрос на ввод массива с клавиатуры
    for (i=0; i<size; i++)
        for (j=0; j<size; j++)
            cin>>Ar[i][j]; //считывание введенного массива
    for (i=0; i<size; i++) //для каждой строки
    {
        sum=0; //инициализируем-обнуляем переменную суммы
        ver=false; //по умолчанию считаем что отрицательных элементов в строке нет
        for (j=0; j<size; j++) //для каждого элемента строки
        {
            sum+=Ar[i][j]; //прибавляем его значение к сумме
            if (Ar[i][j]<0) ver=true; //в случае если этот элемент отрицательный меняем значение проверочной переменной
        }
        if (ver==true) //если в строке есть отрицательный элемент
            cout<<"\nсумма элементов строки №"<<i+1<<" равна "<<sum; //выводим сумму элементов строки
    }
    //седловые точки
    for (i=0; i<size; i++)//для каждой строки
    {
        n=0;
        min=Ar[i][n];//минимальным элементом строки считаем 0-й
        
    for (j=1; j<size; j++)//перебираем последующие элементы строки
        {
            if (Ar[i][j]<min) //если элемент меньше минимального
            {
                min=Ar[i][j]; //его значение присваиваецца минимуму
                n=j;//а номер его столбца- искомому номеру
            }
        }
        ver=true; //по умолчанию считаем что найденый элемент является седловой точкой
        max=min; //следовательно его значение является максимальным
        
        for (m=0; m<size; m++) //перебираем все элементы даного столбца
            if (Ar[m][n]>max) //если элемент больше максимального
                ver=false; //следовательно точка не является седловой
        if (ver==true) //если же точка седловая
            cout<<"\nкоординаты седловой точки "<<i+1<<", "<<n+1; //выводим ее координаты
    }
    //аналогично находим седловые точки для столбцов
    for (j=0; j<size; j++)
    {
        min=Ar[0][j];
        m=0;
    for (i=1; i<size; i++)
        {
            if (Ar[i][j]<min) 
            {
                min=Ar[i][j];
                m=i;
            }
        }
        max=min; 
        ver=true;
        for (n=0; n<size; n++)
            if (Ar[m][n]>max)
                ver=false;
        if (ver==true) 
            cout<<"\nкоординаты седловой точки "<<m+1<<", "<<j+1;
    }
}
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru