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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти количество столбцов матрицы, содержащих хотя бы один нулевой элемент http://www.cyberforum.ru/cpp-beginners/thread717024.html
Помогите пожалуйста написать программу, буду признательна и благодарна. Дана целочисленная прямоугольная матрица. Определить: 1.) количество столбцов, содержащих хотя бы один нулевой элемент; 2.) номер строки, в которой находится самая длинная серия одинаковых элементов.
C++ отредактивароть код Помогите пожалуйста, нужно что бы программа правильно заработала #include "stdafx.h" #include <locale> #include "time.h" #include "math.h" #include "stdlib.h" #include <iostream> using namespace std; int _tmain(int argc, _TCHAR* argv) http://www.cyberforum.ru/cpp-beginners/thread717012.html
Функция (объяснить) C++
Здраствуйте помогите пожалуйста разобраться в функции Не пойму, мы передаём в функцию символ и массив символов, i- счётчик, по которому мы движемся до конца строки если элемент массива совпадаем с переданным символом -> выходим и возращаем i ? или просто выходим из функции? int SearchTerminal(char c,char T) { int i; for (i=0; T !='\0'; i++)
Одномерный массив, найти среднее арифметическое отрицательных элементов C++
подскажите пожалуйста как решить: Дано два массива а (n) и в (n) .Найти среднее арифметическое отрицательных элементов в двух массивах. нужно использовать один цикл.
C++ Ввести фамилию, имя и отчество как одно текстовое данное. Определить длину данного и количество букв «а» в нем http://www.cyberforum.ru/cpp-beginners/thread716991.html
Ввести фамилию, имя и отчество как одно текстовое данное. Определить длину данного и количество букв «а» в нем. Решить задачу двумя способами: 1) используя функции из библиотеки <string.h>; 2) рассматривая введенный текст как массив символов. ЗАДАЧА. Вывести третье слово и количество букв в фамилии.
C++ Матрица (сумма элементов, отличных от нуля) Данная целочисленная квадратная матрица. Определить сумму элементов отличных от нуля. подробнее

Показать сообщение отдельно
tatzah
0 / 0 / 0
Регистрация: 02.12.2012
Сообщений: 3
03.12.2012, 06:42     Вывести номера всех седловых точек матрицы
написала код который должен считать 1) сумму элементов тех строк матрицы, в которых хотя бы один элемент отрицательный, 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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <math.h>
#include <iomanip>
 
using namespace std;
int main()
{
int n,m,found=0,max[100][3], min[100][3];
cin >> n>> m; //ввод размерности массива
int i,j;
int **a=new int*[n]; 
for(i=0;i<n;i++) a[i]=new int[m];
  for(i=0;i<n;i++) 
  for(j=0;j<m;j++) cin >>a[i][j];   //ввод массива
int flag,summ;   
summ=0;
for(i=0;i<n;i++) 
{
  j=0; flag=0;
  while ((j<m) && (flag==0))
    if (a[i][j]<0) flag=1; else j++;
    if (flag==1)
      for(j=0;j<m;j++)
    {
    summ=summ+a[i][j];
    }
}
 
cout<<summ<<" ";
    //Поиск седловых точек
for (i=0;i<n;i++)
{
    min[i][0]=a[i][0];
    min[i][1]=i;
    min[i][2]=0;
    for (j=1;j<m;j++)
        if(a[i][j]<min[i][0]) 
        {
            min[i][0]=a[i][j];//сам минимум в i-ой строке
            min[i][1]=i; //строка минимума
            min[i][2]=j; //столбец минимума
        }
}
 
for (j=0;j<m;j++)
{
    max[j][0]=a[0][j];
    max[j][0]=0;
    max[j][0]=j;
    for (i=1;i<n;i++)
        if(a[i][j]>max[j][0]) 
        {
            max[j][0]=a[i][j];// сам максимум в j-ом столбце
            max[j][1]=i; //строка максимума
            max[j][2]=j; //столбец максимума
        }
}
for (i=0;i<n;i++)
    for (j=0;j<3;j++)
        cout <<min[i][j]<<" ";
cout <<endl;
for (i=0;i<n;i++)
    for (j=0;j<3;j++)
        cout <<max[i][j]<<" ";
for (i=0;i<n;i++)
    for (j=0;j<3;j++)
        if(min[i][0]==max[j][0] && min[i][1]==max[j][1] && min[i][2]==max[j][2])
        {   cout <<min[i][1]<<max[j][2];
        found++;}
 
     system ("PAUSE");  
return 0;
}
Но когда проверяю работоспособность кода (т.е формирую массивы min в строке и max в столбце "сам элемент", "его номер в строке" и "его номер в столбце" то выходит какая-то ерунда:
например размерность матрицы 3х3
0 -9 2
5 -1 0
1 -3 6
тогда массив min в строках будет такой:
-9 0 1
-1 1 1
-3 2 1
массив max в столбцах у меня получается
5 1 0
1 -858993460 -858993466
6 2 2

Подскажите откуда могли взяться эти большие отрицательные значения, если для других элементов она считает правильно

Добавлено через 6 часов 45 минут
кто-нибудь может помочь?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 07:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru