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

Определить количество столбцов матрицы, не содержащих ни одного нулевого элемента - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.77
Larka91
 Аватар для Larka91
0 / 0 / 0
Регистрация: 02.10.2010
Сообщений: 27
07.02.2011, 17:48     Определить количество столбцов матрицы, не содержащих ни одного нулевого элемента #1
Помогите еще с одной программой пожалуйста

Дана прямоугольная матрица
Определить:

1. количество столбцов, не содержащих ни одного нулевого элемента
2. сумма положительных четных элементов каждой строки
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.02.2011, 17:48     Определить количество столбцов матрицы, не содержащих ни одного нулевого элемента
Посмотрите здесь:

Определить количество столбцов матрицы, не содержащих ни одного нулевого элемента C++
Определить количество столбцов матрицы, не содержащих ни одного нулевого элемента C++
C++ Определить количество столбцов матрицы, не содержащих ни одного нулевого элемента
C++ Определить количество столбцов матрицы, не содержащих ни одного нулевого элемента
C++ Определить количество столбцов матрицы не содержащих ни одного нулевого элемента
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
07.02.2011, 18:13     Определить количество столбцов матрицы, не содержащих ни одного нулевого элемента #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Larka91 Посмотреть сообщение
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
#include <iostream>
#include <algorithm>
#include <vector>
#include <cstdlib>
#include <ctime>
#include <iomanip>
#include <numeric>
 
typedef std::vector<int>   T_arr;
typedef std::vector<T_arr> T_matr;
 
int main(){
  size_t rows, columns;
  std::cout << "\n\nEnter count rows -> ";
  std::cin >> rows;
  std::cout << "\n\nEnter count columns -> ";
  std::cin >> columns;
  T_matr matr(rows, T_arr(columns));
  srand(time(0));
  std::generate_n(matr.begin(), rows, [&columns]() -> T_arr{
    T_arr tmp(columns);
    std::generate_n(tmp.begin(), columns, []() -> int{
      int t = rand() % 20 - 10;
      std::cout << std::setw(3) << t << ' ';
      return t;
    });
    std::cout << std::endl;
    return tmp;
  });
  std::cout << std::endl << std::endl;
  std::for_each(matr.begin(), matr.end(), [](T_arr &row){
    std::cout << "\n-> " << std::accumulate(row.begin(), row.end(), 0, [](int a, int b) {
      return b > 0 && !(b % 2)? a + b : a;
    });
  });
  return 0;
}
Larka91
 Аватар для Larka91
0 / 0 / 0
Регистрация: 02.10.2010
Сообщений: 27
07.02.2011, 18:22  [ТС]     Определить количество столбцов матрицы, не содержащих ни одного нулевого элемента #3
На эту программу мой компилятор почему-то ругается
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
07.02.2011, 18:49     Определить количество столбцов матрицы, не содержащих ни одного нулевого элемента #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Larka91, Эта програма только для GCC 4.5+, MSVS10

Добавлено через 13 минут
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
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <iomanip>
 
int main(){
  size_t rows, columns;
  std::cout << "\n\nEnter count rows -> ";
  std::cin >> rows;
  std::cout << "\n\nEnter count columns -> ";
  std::cin >> columns;
  int **matr = new int*[rows];
  srand(time(0));
  for(int i = 0; i < rows; ++i){
    matr[i] = new int [columns];
    for(int j = 0; j < columns; ++j){
      matr[i][j] = rand() % 20 - 10;
      std::cout << std::setw(3) << matr[i][j] << ' ';
    }
    std::cout << std::endl;
  }
  bool key;
  size_t cnt_not_null_cols = 0;
  for(int j = 0; j < rows; ++j){
    key = true;
    for(int i = 0; i < columns; ++i){
      ( !matr[i][j] )? key = false : 0;
    }
    ( key )? ++cnt_not_null_cols : 0;
  }
  std::cout << "\n\n Count columns ... -> " << cnt_not_null_cols << std::endl;
  int sum;
  for(int i = 0; i < rows; ++i){
    sum = 0;
    for(int j = 0; j < columns; ++j){
      ( matr[i][j] > 0 && !( matr[i][j] % 2 ) )? sum += matr[i][j] : 0;
    }
    std::cout << "\n-> " << sum;
  }
  for(int i = 0; i < rows; ++i){
    delete[] matr[i];
  }
  delete[] matr;
  return 0;
}
Larka91
 Аватар для Larka91
0 / 0 / 0
Регистрация: 02.10.2010
Сообщений: 27
07.02.2011, 19:45  [ТС]     Определить количество столбцов матрицы, не содержащих ни одного нулевого элемента #5
Мне бы на Dev-C++
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
07.02.2011, 19:53     Определить количество столбцов матрицы, не содержащих ни одного нулевого элемента #6
Цитата Сообщение от Larka91 Посмотреть сообщение
Мне бы на Dev-C++
Пост #4
Larka91
 Аватар для Larka91
0 / 0 / 0
Регистрация: 02.10.2010
Сообщений: 27
07.02.2011, 20:07  [ТС]     Определить количество столбцов матрицы, не содержащих ни одного нулевого элемента #7
Огромное огромное спасибо:**))
Vandris
 Аватар для Vandris
63 / 63 / 13
Регистрация: 19.01.2011
Сообщений: 90
07.02.2011, 21:27     Определить количество столбцов матрицы, не содержащих ни одного нулевого элемента #8
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Larka91 Посмотреть сообщение
1. количество столбцов, не содержащих ни одного нулевого элемента
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
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <iomanip>
 
int main()
{
    setlocale(2, ".1251");
    srand(time(NULL));
    int **Matrix, count = 0;
    unsigned n, m;
    bool flag = true;
    std::cout << "Введите количество строк: ";
    std::cin >> n;
    std::cout << "Введите количество столбцов: ";
    std::cin >> m;
    Matrix = new int *[n];
    for (size_t i = 0; i < n; i++)
    {
        Matrix[i] = new int [m];
        for (size_t j = 0; j < m; j++)
            std::cout << std::setw(3) << (Matrix[i][j] = -10 + rand() % 20) << " ";
        std::cout << std::endl;
    }
 
    for (size_t i = 0; i < m; i++)
    {
        flag = true;
        for (size_t j = 0; j < n; j++)
        {
            if (Matrix[j][i] == 0)
                flag = false;
        }
        if (flag)
            count++;
    }
    std::cout << "В матрице " << count << " столбцов, не содержащих нулевого элемента";
    for (size_t i = 0; i < n; i++)
        delete [] Matrix[i];
    delete [] Matrix;
    return 0;
}
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
07.02.2011, 21:29     Определить количество столбцов матрицы, не содержащих ни одного нулевого элемента #9
Vandris, В моем коде есть ошибка ?
Vandris
 Аватар для Vandris
63 / 63 / 13
Регистрация: 19.01.2011
Сообщений: 90
07.02.2011, 21:32     Определить количество столбцов матрицы, не содержащих ни одного нулевого элемента #10
я ваш код честно говоря не смотрел, но вы вроде указали сверху, что задача №2, логично предположить, что №1 там нет =)
З.Ы. если есть замечания к моему коду - выкладывай, пишу для тренировки так сказать
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
07.02.2011, 21:37     Определить количество столбцов матрицы, не содержащих ни одного нулевого элемента #11
Цитата Сообщение от Vandris Посмотреть сообщение
я ваш код честно говоря не смотрел, но вы вроде указали сверху, что задача №2, логично предположить, что №1 там нет =)
Эмм...логика страдает)
Я же не первый код указал что там только второе задание, а на второй ничего и сразу такие выводи, печально..)
Larka91
 Аватар для Larka91
0 / 0 / 0
Регистрация: 02.10.2010
Сообщений: 27
07.02.2011, 22:17  [ТС]     Определить количество столбцов матрицы, не содержащих ни одного нулевого элемента #12
Vandris. спасибо за код к части (1) ..
Larka91
 Аватар для Larka91
0 / 0 / 0
Регистрация: 02.10.2010
Сообщений: 27
15.02.2011, 00:39  [ТС]     Определить количество столбцов матрицы, не содержащих ни одного нулевого элемента #13
Маленькая проблемка, нужно переделать код программы под условие:

"Ввод массива осуществляется с клавиатуры или из файла с расширеним .DAT"

((
Vandris
 Аватар для Vandris
63 / 63 / 13
Регистрация: 19.01.2011
Сообщений: 90
15.02.2011, 06:07     Определить количество столбцов матрицы, не содержащих ни одного нулевого элемента #14
Сообщение было отмечено автором темы, экспертом или модератором как ответ
для ввода с клавиатуры у меня в коде это
C++
1
2
3
4
5
6
7
    for (size_t i = 0; i < n; i++)
    {
        Matrix[i] = new int [m];
        for (size_t j = 0; j < m; j++)
            std::cout << std::setw(3) << (Matrix[i][j] = -10 + rand() % 20) << " ";
        std::cout << std::endl;
    }
поменять на
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    for (size_t i = 0; i < n; i++)
    {
        Matrix[i] = new int [m];
        for (size_t j = 0; j < m; j++)
        {
            std::cout << "Введите А["<< i << "][" << j << "] й элемент: ";
            std::cin >> Matrix[i][j];
        }
    }
    /*Этот цикл оставить по необходимости, он нужен чтобы показать полученную матрицу*/
    for (size_t i = 0; i < n; i++)
    {
        for (size_t j = 0; j < m; j++)
            std::cout << Matrix[i][j] << " ";
        std::cout << std::endl;
    }
для ввода из файла заменить на
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    std::ifstream in("matrix.dat");  //файл должен быть создан там же, где и файл с кодом ну 
                                             //и с матрицей в нем
    for (size_t i = 0; i < n; i++)
    {
        Matrix[i] = new int [m];
        for (size_t j = 0; j < m; j++)
            in >> Matrix[i][j];
    }
    /*Цикл также оставить по необходимости*/
    std::cout << "Введенная матрица:" << std::endl;
    for (size_t i = 0; i < n; i++)
    {
        for (size_t j = 0; j < m; j++)
            std::cout << Matrix[i][j] << " ";
        std::cout << std::endl;
    }
ну и подключить #include <fstream>

для кода asics из поста №4 менять вот этот кусок кода
C++
1
2
3
4
5
6
7
8
    for(int i = 0; i < rows; ++i){
    matr[i] = new int [columns];
    for(int j = 0; j < columns; ++j){
      matr[i][j] = rand() % 20 - 10;
      std::cout << std::setw(3) << matr[i][j] << ' ';
    }
    std::cout << std::endl;
  }
менять так же, только вместо Matrix писать matr, вместо n писать rows и вместо
m писать columns
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.02.2011, 09:40     Определить количество столбцов матрицы, не содержащих ни одного нулевого элемента
Еще ссылки по теме:

Определить количество столбцов матрицы, не содержащих ни одного нулевого элемента C++
Определить количество столбцов матрицы не содержащих ни одного нулевого элемента C++
C++ Определить количество столбцов матрицы, не содержащих ни одного нулевого элемента

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

Или воспользуйтесь поиском по форуму:
Larka91
 Аватар для Larka91
0 / 0 / 0
Регистрация: 02.10.2010
Сообщений: 27
15.02.2011, 09:40  [ТС]     Определить количество столбцов матрицы, не содержащих ни одного нулевого элемента #15
Огромное спасибо взгляните пожалуйста еще в эту тему Определить количество слов в тексте, оканчивающихся на гласную букву, ((
Yandex
Объявления
15.02.2011, 09:40     Определить количество столбцов матрицы, не содержащих ни одного нулевого элемента
Ответ Создать тему
Опции темы

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