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

Седловая точка - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Преобразовать строку в массив http://www.cyberforum.ru/cpp-beginners/thread888427.html
Всем привет. Очень нужна помощь, голову уже сломал. Ситуация следующая. Есть строка char* stroka; stroka=(char*)fp.c_str(); int len=strlen(stroka); for(int i=0;i<len;++i) { if (stroka=='V'){ stroka=' '; } if (stroka=='+'){ stroka=' '; }
C++ Даны отрезки а, в, с и d. Для каждой тройки этих отрезков напечатать площадь данного треугольника Даны отрезки а, в, с и d. Для каждой тройки этих отрезков, из которых можно построить треугольник, напечатать площадь данного треугольника. (Определить функцию, вычисляющую площадь треугольника, если она существует). Вводится последовательность целых чисел, 0 – конец последовательности. Определить среднее арифметическое простых чисел последовательности (функцией оформить проверку числа:... http://www.cyberforum.ru/cpp-beginners/thread888424.html
Работа с базой данных из консоли C++
Доброго времени суток. Раньше никогда с БД не работал, а тут интересно стало, как все это работает. С обычным приложение все достаточно легко, там готовые компоненты есть. А как это делать из консоли? Можно какой-нибудь простой пример с БД в которой содержится, ну например пара фамилий и номера телефонов (или машин, или товары и цены, в общем все равно, главное разобраться).
C++ Алгоритм Райта
Нужна помощь. Нужно реализовать алгоритм Райта. О нем ничего не могу найти, может кто то что то знает. Помогите пожалуйста.
C++ allocator своя версия http://www.cyberforum.ru/cpp-beginners/thread888394.html
Доброго времени суток. Мне нужно написать class allocator на подобии стандартного. Он должен содержать следующие методы: Method void* allocate (size_t n) Default: returns malloc (n*sizeof(T)) Method void deallocate (void* pointer) Default: free(pointer) Method void construct ( void* p, const T& value) new(p) T(value); Method void destroy (T* p) p->~T();
C++ Объявление и инициализация динамической матрицы Ребят, только начал разбираться с матрицой. примерно я знаю как написать матрицу, но не знаю как написать динамическую матрицу, и чтоб размеры матрицы вводилось с клавиатуры. помогите написать подробнее

Показать сообщение отдельно
Sheffs
1 / 1 / 0
Регистрация: 31.05.2013
Сообщений: 9
02.06.2013, 23:53     Седловая точка
Да, я знаю, что подобных тем куча на форуме. Поэтому извиняюсь заранее. Дело в том, что я хочу сам допереть до решения этой задачи. Т.е. хочу разобраться где ошибка и как найти путь истинный

Моя логика в том, что программа находит наименьший элемент в каждой строке и выводит индекс этой точки на экран (назовем эту точку minstr). То же самое она делает и с максимальной точкой в каждой колонке. Это я описал то, что работает в программе (а эту maxst)

Оценив, что значения i индекса minstr равно значению j maxst, я решил этим воспользоватся, дабы найти эту точку.
Пишу: если i от minstr равно j от maxst, то это седловая точка. Но программа пишет, что таких нету.
Рад буду любой подсказке.

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
#include <iostream>
#include <conio.h>
#include <clocale>
using namespace std;
 
int main()
{setlocale(LC_CTYPE,"Russian");
int n,i,j,m,min,max,minstr,maxstolb,stri;
int **A;
cout << "Введите число строк матрицы: ";
cin >> n;
cout << "Введите число столбцов матрицы: ";
cin >> m;
A = new int *[n];
for ( i = 0; i < n; ++i)
    *(A + i) = new int [m];
for ( i = 0; i < n; i++)
    {
        cout << "Введите " << m << " значений для " << i + 1 << " строки через пробел): ";
        for ( j = 0; j < m; j++)
            cin >> A[i][j];
    }
cout<< "\nПолученная матрица:\n";
 
    for ( i = 0; i < n; i++)
    {
        for ( j = 0; j < m; j++)
            cout <<  A[i][j]<< " ";
        cout << '\n';
    }
 
for (i=0;i<n;i++)
{
min=A[i][0];
minstr=0;
stri=0;
for (j=0;j<m;j++)
if (A[i][j]<min)
{
    min=A[i][j];
    minstr=j;
    stri=i;
}
cout<<"номер строки с минимальным значением: "<<minstr<<" "<<stri<<endl;
}
 
for (j=0;j<m;j++)
{
max=A[0][j];
maxstolb=0;
for (i=0;i<n;i++)
if (A[i][j]>max)
{
    min=A[i][j];
    maxstolb=i;
}
cout<<"номер столбца с максимальным значением: "<<maxstolb<<" "<<j<<endl;
}
 
if (minstr=maxstolb)
cout<<"Седлвая точка ["<<stri<<"]"<<"["<<minstr<<"]";
else
cout<<"Седлвых точек не обнаружено";
    _getch();
    return 0; 
}
Добавлено через 4 часа 18 минут
Я понял одну вещь. Два цикла, которые определяют максимум и минимум, выводят последнюю обработанную точку, забывая о предыдущих найденных. Я не понимаю как сделать, что бы из цикла выходили все найденные значения, а потом сравнивались друг с другом.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 00:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru