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

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

Войти
Регистрация
Восстановить пароль
 
ko3lib
0 / 0 / 0
Регистрация: 13.04.2010
Сообщений: 22
#1

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

19.04.2010, 14:38. Просмотров 467. Ответов 6
Метки нет (Все метки)

Найти в матрице первую строку, все элементы которой положительны.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.04.2010, 14:38
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти в матрице первую строку (C++):

3. Найти в матрице первую строку - C++
Задача Найти в матрице первую строку, все элементы которой упорядочены по возрастанию. Ктонибудь подскажите как решить ее не...

Найти в матрице первую строку, все элементы которой положительны - C++
Найти в матрице первую строку, все элементы которой положительны

Найти в матрице первую строку, все элементы которой отрицательны - C++
Найти в матрице первую строку, все элементы которой отрицательны. Увеличить все элементы матрицы на значение первого элемента найденной...

Найти в матрице первую строку, все элементы которой положительны - C++
помогите плиииз

Найти в матрице первую строку, все элементы которой упорядочены по возрастанию - C++
Найти в матрице первую строку, все элементы которой упорядочены по возрастанию. Изменить упорядоченность элементов этой строки на обратную.

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Maxim Prishchepa
Эксперт С++
1922 / 1034 / 74
Регистрация: 29.03.2010
Сообщений: 3,167
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;
}
1
ko3lib
0 / 0 / 0
Регистрация: 13.04.2010
Сообщений: 22
19.04.2010, 15:51  [ТС] #3
а можно по подробней чуток) чтоб разобраться, counter, column, countR это просто им значение присвоили и всё чтоль?
0
Maxim Prishchepa
Эксперт С++
1922 / 1034 / 74
Регистрация: 29.03.2010
Сообщений: 3,167
19.04.2010, 16:25 #4
Цитата Сообщение от ko3lib Посмотреть сообщение
а можно по подробней чуток) чтоб разобраться, counter, column, countR это просто им значение присвоили и всё чтоль?
const int countC = 5;
const int countR = 5;
объявляете массив matrix[countC][countR] - заполняете его, а дальше как описано выше, в column будет храниться нужная вам строка
1
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;
2
Maxim Prishchepa
Эксперт С++
1922 / 1034 / 74
Регистрация: 29.03.2010
Сообщений: 3,167
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;
1
easybudda
Модератор
Эксперт CЭксперт С++
9633 / 5581 / 948
Регистрация: 25.07.2009
Сообщений: 10,715
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;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.04.2010, 10:59
Привет! Вот еще темы с ответами:

Найти в матрице первую строку, все элементы которой упорядочены по убыванию - C++
Найти в матрице первую строку, все элементы которой упорядочены по убыванию. Изменить упорядоченность элементов этой строки на обратную. ...

Работа с матрицей (в матрице найти первую по очереди строку с максимальной суммой элементов) - C++
Помогите пожалуйста с задаче. С матрицы получить компоненты вектора X = (Xi). А именно : в матрице найти первую по очереди строку с...

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

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


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

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

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