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

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

Войти
Регистрация
Восстановить пароль
 
123456кам
1 / 1 / 0
Регистрация: 11.11.2011
Сообщений: 49
#1

Подскажите где ошибка (номер строк и столбцов всех седловых точек матрицы) - C++

29.03.2012, 16:59. Просмотров 599. Ответов 3
Метки нет (Все метки)

Номер строк и столбцов всех седловых точек матрицы.

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
#include <iostream.h>
 
void main(void)
{
int const n = 3, m = 3;
int mas[n][m]; 
int i,j;
cout << "Vvedite matricy" << endl;
for (i = 0; i < n; i++)
    for (j = 0; j < m; j++)
    {
        cout << "Vvedite element mas["<<i+1<<"]["<<j+1<<"]:";
        cin >> mas[i][j];
    }
        for(i=0; i<n; i++)
        {
            int min = mas[0][0];
            int imin = 0;
 
            for(j=0; j<m; j++)
            {
                if(mas[i][j] < min)
                {
                min=mas[i][j];
                imin = i;
                }
            
    j = m - 1;
 
    for(int k=0; k<m; k++)
    {
        int max = mas[imin][0];
        int jmax = 0;
 
        {       if(mas[imin][k] > max)
 
            max=mas[imin][k];
            jmax=k;
        }
    
            if(max==min)
            cout<< "i=" << imin << "  " << "j=" << jmax << "  " << "sedlovay tochka = "<< mas[imin][jmax] << endl;
            else
            cout << "sedlovoi tochki net" << endl;
            break;
 
            }
        }
    }
}
Ввожу матрицу -4 1 2 -4 1 2 1 2 3, ответ 1 в 2 строке 0 столбце, но выдает -4 -4 -4, не могу понять что делаю не так... подскажите, буду признателен!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.03.2012, 16:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Подскажите где ошибка (номер строк и столбцов всех седловых точек матрицы) (C++):

Номера строк и столбцов всех седловых точек матрицы - C++
Помогите немогу решить контрольную по с++ ,задание такое Дана целочисленная прямоугольная матрица.Определить: Номера строк и...

Определить номера строк и столбцов всех седловых точек матрицы - C++
Ребята, помогите написать листинг, я в этом мало понимаю, мне на практику очень надо. Через два дня сдавать..( Задание: Определить номера...

Определить номера строк и столбцов всех седловых точек матрицы - C++
Здравствуйте! Помогите пожалуйста! Дана целочисленная прямоугольная матрица. Определить: 1.) сумму элементов в тех строках, которые...

Определить номера строк и столбцов всех седловых точек матрицы - C++
Помогите пожалуйста решить задачи: Третья задача - Дана целочисленная прямоугольная матрица. Определить номера строк и столбцов всех...

Определить номера строк и столбцов всех седловых точек матрицы - C++
Помогите немогу решить контрольную по с++ ,задание такое Дана целочисленная прямоугольная матрица.Определить: 1) Количество...

Найти номера строк и столбцов всех Седловых точек матрицы - C++
Дана целочисленная прямоугольная матрица. Определить: 1.) сумму элементов в тех строках, которые содержат хотя бы один отрицательный...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
denys_l
52 / 52 / 4
Регистрация: 26.09.2011
Сообщений: 186
29.03.2012, 21:30 #2
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
#include <iostream>
 using namespace std;
 
 
int main()
{
int const n = 3, m = 3;
int mas[n][m];
int i,j;
cout << "Vvedite matricy" << endl;
for (i = 0; i < n; i++)
        for (j = 0; j < m; j++)
        {
                cout << "Vvedite element mas["<<i+1<<"]["<<j+1<<"]:";
                cin >> mas[i][j];
        }
 
 
                for(i=0; i<n; i++)
                {
                    for(j=0; j<m; j++)
                    {
                        bool flag = false;
                        //берем каждый элемент массива
                        int min = mas[i][j];
                        int imin = i,
                            jmin = j;
                        //и проверяем является ли он минимальным в строке
                        for(int j=0; j<m; j++)
                            if(mas[i][j] < min)
                            {
                                flag = true;
                                break;
                            }
                        if(flag) break;
                        else
                        {
                            for(int i=0; i<n; i++) // а затем максимальным в столбце
                                if(mas[i][jmin] > min)
                                {
                                   flag = true;
                                   break;
                                }
                        }//если все хорошо, выводим точку
                        if(!flag) cout << "element: " << min << " - row: "
                            << imin << "; " << "col: " << jmin << endl;
                    }
                }
}
123456кам
1 / 1 / 0
Регистрация: 11.11.2011
Сообщений: 49
29.03.2012, 21:52  [ТС] #3
а можете сказать где ошибка в моей программе?)
denys_l
52 / 52 / 4
Регистрация: 26.09.2011
Сообщений: 186
30.03.2012, 00:18 #4
Твой правленный...
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
#include <iostream>
using namespace std;
 
void main(void)
{
int const n = 3, m = 3;
int mas[n][m] = {{-4,1,2},{-4,1,2},{1,2,3}};
int i,j;
cout << "Vvedite matricy" << endl;
for (i = 0; i < n; i++)
{
   for (j = 0; j < m; j++)
   {
       cout << " " << mas[i][j];
   }
   cout << endl;
}
        for(i=0; i<n; i++)
        {
            int min = mas[i][0];
            int imin = 0; 
            for(j=0; j<m; j++)            
                if(mas[i][j] < min)
                {
                min=mas[i][j];
                imin = i;
                }
           
   // j = m - 1;
        int max = mas[imin][0];
        int jmax = 0;
    for(int k=0; k<m; k++) 
        if(mas[k][imin] > max)
        {
   
            max=mas[k][imin];
            jmax=k;
        }
   
            if(max==min)
            cout<< "i=" << jmax << "  " << "j=" << imin << "  " << "sedlovay tochka = "<< mas[jmax][imin] << endl;
           
           
 
           }
        
    }
Добавлено через 10 минут
C++
1
2
3
4
5
            if(max==min)
            cout<< "i=" << imin << "  " << "j=" << jmax << "  " << "sedlovay tochka = "<< mas[imin][jmax] << endl;
            else
            cout << "sedlovoi tochki net" << endl;
            break;
Получается, что при первом проходе, если max не равен min выводится сообщение на экран, что седловой точки и выходим из цикла
C++
1
for(i=0; i<n; i++)
Хотя у нас есть ещё две строки
Потом, раньше
C++
1
j = m - 1;
бесполезная запись, так и не понял зачем
C++
1
2
3
4
5
6
7
for(j=0; j<m; j++)
            {
                if(mas[i][j] < min)
                {
                min=mas[i][j];
                imin = i;
                }
Это по видимому поиск минимума. По хорошему мы должны пройтись по всем элементам строки прежде, чем идти дальше. А тут мы делаем один проход и потом куда-то уходим, я так и не смог отследить как оно потом работает. т.е. ота скобка во второй строке ненужна.
Тоже самое здесь. Открывающая фигурная скобка не нужна
C++
1
2
3
4
5
6
for(int k=0; k<m; k++)
    {
        int max = mas[imin][0];
        int jmax = 0;
 
        {      if(mas[imin][k] > max)
Соответстенно и закрывающие надо убирать... и перед if скобка тоже не по месту стоит
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.03.2012, 00:18
Привет! Вот еще темы с ответами:

Определить номера строк и столбцов всех седловых точек матрицы - C++
помогите пожалуйста! определить номера строк и столбцов всех седловых точек матрицы. (матрица А имеет седловую точку, если элемент является...

Дана целочисленная прямоугольная матрица.Определить номера строк и столбцов всех седловых точек матрицы - C++
Вот начал писать, а дальше не знаю что писать.помогите #include &quot;stdafx.h&quot; #include&lt;iostream&gt; #include&lt;time.h&gt; using namespace...

Определить индексы всех седловых точек матрицы - C++
Для заданной матризы размером (N x M)определить индексы всех ее седловых точек.

Найти координаты всех седловых точек матрицы - C++
Помогите плз написать прогу: Используя динамический массив. В целочисленной прямоугольной матрице A(mxn) найти: - номер первой из...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
30.03.2012, 00:18
Ответ Создать тему
Опции темы

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