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

Найти в матрице первую строку - C++

Восстановить пароль Регистрация
 
ko3lib
0 / 0 / 0
Регистрация: 13.04.2010
Сообщений: 22
19.04.2010, 14:38     Найти в матрице первую строку #1
Найти в матрице первую строку, все элементы которой положительны.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.04.2010, 14:38     Найти в матрице первую строку
Посмотрите здесь:

3. Найти в матрице первую строку C++
C++ Найти в матрице первую строку, все элементы которой положительны
C++ Найти в матрице строку где сумма элементов минимальна и удалить эту строку
Найти в матрице первую строку, все элементы которой положительны C++
C++ дана целочисленная матрица A , размером а х м, найти в матрице первую строку, все элементы которой равны нолю, Умножить элементы столбца с таким же н
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Maxim Prishchepa
Эксперт С++
 Аватар для Maxim Prishchepa
1762 / 985 / 60
Регистрация: 29.03.2010
Сообщений: 2,977
19.04.2010, 14:43     Найти в матрице первую строку #2
Цитата Сообщение от ko3lib Посмотреть сообщение
Найти в матрице первую строку, все элементы которой положительны.
блин... ну а самим подумать религия не позволяет?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int counter =0;
int column = -1;
for(int i=0;i<countC;i++)
{
  counter =0;
  for(int j=0;j<countR;j++)
  {
      counter +=matrix[i][j];
  }
  if(counter>=0)
  {
     column = i;
     break;
  }
}
if(column != -1) 
{
   cout<<column;
}
ko3lib
0 / 0 / 0
Регистрация: 13.04.2010
Сообщений: 22
19.04.2010, 15:51  [ТС]     Найти в матрице первую строку #3
а можно по подробней чуток) чтоб разобраться, counter, column, countR это просто им значение присвоили и всё чтоль?
Maxim Prishchepa
Эксперт С++
 Аватар для Maxim Prishchepa
1762 / 985 / 60
Регистрация: 29.03.2010
Сообщений: 2,977
19.04.2010, 16:25     Найти в матрице первую строку #4
Цитата Сообщение от ko3lib Посмотреть сообщение
а можно по подробней чуток) чтоб разобраться, counter, column, countR это просто им значение присвоили и всё чтоль?
const int countC = 5;
const int countR = 5;
объявляете массив matrix[countC][countR] - заполняете его, а дальше как описано выше, в column будет храниться нужная вам строка
stv
26 / 26 / 6
Регистрация: 05.03.2010
Сообщений: 171
19.04.2010, 18:38     Найти в матрице первую строку #5
Мне кажется код написан неверно
Цитата Сообщение от l_a_m Посмотреть сообщение
for(int j=0;j<countR;j++)
{
counter +=matrix[i][j];
}
if(counter>=0)
Если взять строку матрицы: 3 4 5 -1, твоя программа будет выдавать сообщение, что строка со всеми положительными элементами. Такая же ситуация при 0 0 0 0

Добавлено через 2 минуты
C++
1
2
3
4
5
6
7
8
9
int column = -1, flag = 1;
for(int i=0;i<countC;i++)
{
  for(int j=0;j<countR;j++)
      if (matrix[i][j] <= 0) flag = 0;
  if (flag && column == -1) column = i;
}
if(column != -1) 
   cout<<column;
Maxim Prishchepa
Эксперт С++
 Аватар для Maxim Prishchepa
1762 / 985 / 60
Регистрация: 29.03.2010
Сообщений: 2,977
20.04.2010, 10:13     Найти в матрице первую строку #6
Цитата Сообщение от stv Посмотреть сообщение
Мне кажется код написан неверно


Если взять строку матрицы: 3 4 5 -1, твоя программа будет выдавать сообщение, что строка со всеми положительными элементами. Такая же ситуация при 0 0 0 0

Добавлено через 2 минуты
C++
1
2
3
4
5
6
7
8
9
int column = -1, flag = 1;
for(int i=0;i<countC;i++)
{
  for(int j=0;j<countR;j++)
      if (matrix[i][j] <= 0) flag = 0;
  if (flag && column == -1) column = i;
}
if(column != -1) 
   cout<<column;
верно, я видимо не до конца понял задание и написал, для суммы строки больше нуля :-) ну.... бывает :-) благодарю, за тычок носом :-)

но я бы немного по иному написал :-)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int column = -1;
for(int i=0;i<countC;i++)
{
  bool flag = true;
  for(int j=0;j<countR;j++)
  {
    
      if (matrix[i][j] <= 0) 
      {  
          flag = false;
          break;
      }
   }
  if (flag)
  {
     column = i;
     break;
  }
}
if(column != -1) 
   cout<<column;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.04.2010, 10:59     Найти в матрице первую строку
Еще ссылки по теме:

C++ В матрице из целых чисел поменять местами первую строку и строку, содержащую самый большой по абсолютной величине элемент матрицы
C++ В матрице из действительных чисел поменять местами первую строку и строку, содержащую наименьший элемент матрицы
C++ Работа с матрицей (в матрице найти первую по очереди строку с максимальной суммой элементов)

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

Или воспользуйтесь поиском по форуму:
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9372 / 5422 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
20.04.2010, 10:59     Найти в матрице первую строку #7
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
#include <iostream>
#include <algorithm>
#include <functional>
#include <iterator>
 
// Найти в матрице первую строку, все элементы которой положительны. 
 
int main(){
    const int ROWS = 5;
    const int COLS = 4;
    int matrix[ROWS][COLS] = {
        { -1, 1, 2, 9 },
        { 0, 0, 0, 0 },
        { 3, 2, 1, -1 },
        { 4, 4, 4, 4 },
        { 5, 5, 5, 5 }
    };
    
    std::cout << "MATRIX:" << std::endl;
    for ( int i = 0; i < ROWS; ++i ){
        std::copy(matrix[i], matrix[i] + COLS, std::ostream_iterator<int>(std::cout, " "));
        std::cout << std::endl;
    }
    std::cout << "First row with only positive elements:" << std::endl;
    for ( int i = 0; i < ROWS; ++i ){
        if ( !std::count_if(matrix[i], matrix[i] + COLS, std::bind2nd(std::less<int>(), 1)) ){
            std::copy(matrix[i], matrix[i] + COLS, std::ostream_iterator<int>(std::cout, " "));
            std::cout << std::endl;
            break;
        }
    }
    
    return 0;
}
Yandex
Объявления
20.04.2010, 10:59     Найти в матрице первую строку
Ответ Создать тему
Опции темы

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