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

Ввести двумерный массив 4*4, подсчитать кол-во (+) и (-) элементов и вывести статистику по строкам, сколько (+), сколько (-) и подсчитать общую сумму - C++

Восстановить пароль Регистрация
 
mykl
 Аватар для mykl
1 / 1 / 0
Регистрация: 04.03.2012
Сообщений: 68
27.05.2013, 20:49     Ввести двумерный массив 4*4, подсчитать кол-во (+) и (-) элементов и вывести статистику по строкам, сколько (+), сколько (-) и подсчитать общую сумму #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
43
44
45
46
47
48
49
50
51
52
#include <iostream>
#include <ctime>
using namespace std;
int i,j;
 
 
int main()
{
 
 
 int min =0;
    int max =0;
    srand(time(NULL));
    int n = 0; 
    int sum = 0;
    cout << "Vvedite razmertost` massiva";
    cin >> n; // Считываем с клавиатуры n
    int **a = new int* [n]; // Создаем массив указателей
    for (int i = 0; i < n; i++)
        
    {
        a[i] = new int [n];
        a[j] = new int [n]; // Создаем элементы
    }
    // А дальше работа как с обычным массивом. 
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            a[i][j] = rand() % 10;
            cout << a[i][j] << " "; // Вывести элементы на консольку
        }
        cout << endl;
 
 
 
 int count = 0; // Счетчик отрицательных элементов
 
 for(i = 0; i < n; i++)
     for(j = 0; j < n; j++)
 if(a[i] < 0)
 count++; // Подсчет
 
 cout << endl;
 
 
 
 cout << "\nNumber of negative elements:\t" << count << endl;
 // Вывод результатов подсчета
 system("pause");
    
    }}
Добавлено через 5 минут
ещё бы нужно чтобы массив заполнялся отриц и полож элементами...
а потом подсчитывал отриц элементы по строкам

Добавлено через 44 минуты
C++ (Qt)
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 <iomanip>
#include <algorithm>
#include <ctime>
#include <random>
#include <stdio.h>
 
int main()
{
   std::random_device rd;
   std::mt19937 gen(rd());
   std::uniform_int_distribution<> urd(-99, 99);
   int j, i;
   const int M = 3, N = 4, K = 3; 
   int arr[M+1][N]; 
   for(int i=0; i < M; i++)
   {
       for(int j=0; j < N; j++)
       {
           arr[i][j] = urd(gen);
           std::cout<< std::setw(2)<< arr[i][j]<< " ";
       }
       std::cout<< std::endl;
   }
 
   int count = 0; // Счетчик отрицательных элементов
 
 for(i = 0; i < n; i++)
     for(j = 0; j < n; j++)
 if(arr[i][j] < 0)
 count++; // Подсчет
 
 std::cout;
 
 
 
 std::cout << "\nNumber of negative elements:\t" << count << endl;
 // Вывод результатов подсчета
   
   system ("pause");
   return 0;
}
научился делать хороший и нужный массив...
как правильно встроить подсчет + и -?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2013, 20:49     Ввести двумерный массив 4*4, подсчитать кол-во (+) и (-) элементов и вывести статистику по строкам, сколько (+), сколько (-) и подсчитать общую сумму
Посмотрите здесь:

C++ Подсчитать, сколько в трёх различных строках буквенных символах, а сколько цифровых
C++ Ввести по строкам с клавиатуры двумерный массив и вычислить среднее арифметическое его элементов
C++ Подсчитать, сколько в массиве чётных элементов
Заполнить массив случайными целыми числами. Подсчитать, сколько элементов в массиве принадлежат определенному интервалу C++
C++ Дан массив действительных чисел, размерность которого N. Подсчитать, сколько в нем отрицательных, положительных и нулевых элементов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
27.05.2013, 21:17     Ввести двумерный массив 4*4, подсчитать кол-во (+) и (-) элементов и вывести статистику по строкам, сколько (+), сколько (-) и подсчитать общую сумму #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 <vector>
#include <algorithm>
#include <iomanip>
#include <random>
#include <chrono>
 
using namespace std;
 
typedef int type;
typedef vector<type> one_dimension;
typedef vector<one_dimension> two_dimension;
 
int main()
{
    default_random_engine gen(chrono::system_clock::now().time_since_epoch().count());
    uniform_int_distribution<type> distribution(-99, 99);
    const one_dimension::size_type rows = 4, cols = 4;
    two_dimension vec(rows, one_dimension(cols));
    for (auto &v : vec )
        generate( begin(v), end(v), [&]{ return distribution(gen); } );
 
    type overall_sum = 0;
 
    for (auto &v : vec) {
        for (auto &x : v) cout << setw(4) << x;
        auto positive_count = count_if( begin(v), end(v), bind2nd(greater<type>(), 0) );
        cout << fixed << setprecision(1);
        cout << " (+)" << setw(5) << positive_count * 100 / static_cast<double>(cols) << "%,"
             << " (-)" << setw(5) << 100.0 - positive_count * 100 / static_cast<double>(cols) << "%" << endl;
        overall_sum = accumulate( begin(v), end(v), overall_sum, plus<type>() );
        cout << fixed << setprecision(0);
    }
    cout << "Overall sum = " << overall_sum;
 
    return 0;
}
mykl
 Аватар для mykl
1 / 1 / 0
Регистрация: 04.03.2012
Сообщений: 68
27.05.2013, 21:23  [ТС]     Ввести двумерный массив 4*4, подсчитать кол-во (+) и (-) элементов и вывести статистику по строкам, сколько (+), сколько (-) и подсчитать общую сумму #3
Olivеr, не работает (
Миниатюры
Ввести двумерный массив 4*4, подсчитать кол-во (+) и (-) элементов и вывести статистику по строкам, сколько (+), сколько (-) и подсчитать общую сумму  
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
27.05.2013, 21:27     Ввести двумерный массив 4*4, подсчитать кол-во (+) и (-) элементов и вывести статистику по строкам, сколько (+), сколько (-) и подсчитать общую сумму #4
Забыл сказать, что у меня компилятор не Майкрософта, а GCC MinGW
Я могу Вам посоветовать включить поддержку С++11. Может тогда и заработает.
Миниатюры
Ввести двумерный массив 4*4, подсчитать кол-во (+) и (-) элементов и вывести статистику по строкам, сколько (+), сколько (-) и подсчитать общую сумму  
mykl
 Аватар для mykl
1 / 1 / 0
Регистрация: 04.03.2012
Сообщений: 68
27.05.2013, 21:34  [ТС]     Ввести двумерный массив 4*4, подсчитать кол-во (+) и (-) элементов и вывести статистику по строкам, сколько (+), сколько (-) и подсчитать общую сумму #5
Olivеr, спасибо то-то я и смотрю, что код немного не тот
а не подскажете как включить эту поддержку?)
просто вряд ли в университетах и др. учебных заведениях эта поддержка включена
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
27.05.2013, 21:41     Ввести двумерный массив 4*4, подсчитать кол-во (+) и (-) элементов и вывести статистику по строкам, сколько (+), сколько (-) и подсчитать общую сумму #6
К сожалению не подскажу потому, что не пользуюсь таким инструментом. В интернетах пишут, что она включена по умолчанию.
Попробуйте так (убрал greater):
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 <vector>
#include <algorithm>
#include <iomanip>
#include <random>
#include <chrono>
 
using namespace std;
 
typedef int type;
typedef vector<type> one_dimension;
typedef vector<one_dimension> two_dimension;
 
int main()
{
    default_random_engine gen(chrono::system_clock::now().time_since_epoch().count());
    uniform_int_distribution<type> distribution(-99, 99);
    const one_dimension::size_type rows = 4, cols = 4;
    two_dimension vec(rows, one_dimension(cols));
    for (auto &v : vec )
        generate( begin(v), end(v), [&]{ return distribution(gen); } );
 
    type overall_sum = 0;
 
    for (auto &v : vec) {
        for (auto &x : v) cout << setw(4) << x;
        auto positive_count = count_if( begin(v), end(v), [](type x) { return x > 0; } );
        cout << fixed << setprecision(1);
        cout << " (+)" << setw(5) << positive_count * 100 / static_cast<double>(cols) << "%,"
             << " (-)" << setw(5) << 100.0 - positive_count * 100 / static_cast<double>(cols) << "%" << endl;
        overall_sum = accumulate( begin(v), end(v), overall_sum, [](type x, type y) { return x + y; } );
        cout << fixed << setprecision(0);
    }
    cout << "Overall sum = " << overall_sum;
 
    return 0;
}
mykl
 Аватар для mykl
1 / 1 / 0
Регистрация: 04.03.2012
Сообщений: 68
27.05.2013, 21:44  [ТС]     Ввести двумерный массив 4*4, подсчитать кол-во (+) и (-) элементов и вывести статистику по строкам, сколько (+), сколько (-) и подсчитать общую сумму #7
Olivеr, на accumulate ругается
Миниатюры
Ввести двумерный массив 4*4, подсчитать кол-во (+) и (-) элементов и вывести статистику по строкам, сколько (+), сколько (-) и подсчитать общую сумму  
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
27.05.2013, 21:49     Ввести двумерный массив 4*4, подсчитать кол-во (+) и (-) элементов и вывести статистику по строкам, сколько (+), сколько (-) и подсчитать общую сумму #8
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <vector>
#include <algorithm>
#include <iomanip>
#include <random>
#include <chrono>
 
using namespace std;
 
typedef int type;
typedef vector<type> one_dimension;
typedef vector<one_dimension> two_dimension;
 
type IsPositive(type x) {return x > 0;}
 
int main()
{
    default_random_engine gen(chrono::system_clock::now().time_since_epoch().count());
    uniform_int_distribution<type> distribution(-99, 99);
    const one_dimension::size_type rows = 4, cols = 4;
    two_dimension vec(rows, one_dimension(cols));
    for (auto &v : vec )
        generate( begin(v), end(v), [&]{ return distribution(gen); } );
 
    type overall_sum = 0;
 
    for (auto &v : vec) {
        for (auto &x : v) {
            cout << setw(4) << x;
            overall_sum += x;
        }
        auto positive_count = count_if( begin(v), end(v), IsPositive );
        cout << fixed << setprecision(1);
        cout << " (+)" << setw(5) << positive_count * 100 / static_cast<double>(cols) << "%,"
             << " (-)" << setw(5) << 100.0 - positive_count * 100 / static_cast<double>(cols) << "%" << endl;
        cout << fixed << setprecision(0);
    }
    cout << "Overall sum = " << overall_sum;
 
    return 0;
}
mykl
 Аватар для mykl
1 / 1 / 0
Регистрация: 04.03.2012
Сообщений: 68
27.05.2013, 21:54  [ТС]     Ввести двумерный массив 4*4, подсчитать кол-во (+) и (-) элементов и вывести статистику по строкам, сколько (+), сколько (-) и подсчитать общую сумму #9
Olivеr, спасибо! теперь работает безотказно
не подскажете ещё как сделать подсчёт (+) и (-) элементов не в процентах, а ещё отдельно в кол-ве?
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
27.05.2013, 21:59     Ввести двумерный массив 4*4, подсчитать кол-во (+) и (-) элементов и вывести статистику по строкам, сколько (+), сколько (-) и подсчитать общую сумму #10
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <vector>
#include <algorithm>
#include <iomanip>
#include <random>
#include <chrono>
 
using namespace std;
 
typedef int type;
typedef vector<type> one_dimension;
typedef vector<one_dimension> two_dimension;
 
type IsPositive(type x) {return x > 0;}
 
int main()
{
    default_random_engine gen(chrono::system_clock::now().time_since_epoch().count());
    uniform_int_distribution<type> distribution(-99, 99);
    const one_dimension::size_type rows = 4, cols = 4;
    two_dimension vec(rows, one_dimension(cols));
    for (auto &v : vec )
        generate( begin(v), end(v), [&]{ return distribution(gen); } );
 
    type overall_sum = 0;
 
    for (auto &v : vec) {
        for (auto &x : v) {
            cout << setw(4) << right << x;
            overall_sum += x;
        }
        auto positive_count = count_if( begin(v), end(v), IsPositive );
        cout << fixed << setprecision(1);
        cout << " (+) " << setw(3) << left << positive_count
             << "(-) " << cols - positive_count << endl;
        cout << fixed << setprecision(0);
    }
    cout << "Overall sum = " << overall_sum;
 
    return 0;
}
mykl
 Аватар для mykl
1 / 1 / 0
Регистрация: 04.03.2012
Сообщений: 68
27.05.2013, 22:03  [ТС]     Ввести двумерный массив 4*4, подсчитать кол-во (+) и (-) элементов и вывести статистику по строкам, сколько (+), сколько (-) и подсчитать общую сумму #11
Olivеr, благодарю!

Добавлено через 2 минуты
Olivеr, и ещё, блин хах замотал уже наверное вас(
возможно ли здесь сделать вариант ввода массива без рандома?
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
27.05.2013, 22:18     Ввести двумерный массив 4*4, подсчитать кол-во (+) и (-) элементов и вывести статистику по строкам, сколько (+), сколько (-) и подсчитать общую сумму #12
Кликните здесь для просмотра всего текста
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 <vector>
#include <algorithm>
#include <iomanip>
#include <random>
#include <chrono>
 
using namespace std;
 
typedef int type;
typedef vector<type> one_dimension;
typedef vector<one_dimension> two_dimension;
 
type IsPositive(type x) {return x > 0;}
 
int main()
{
    one_dimension::size_type rows, cols;
    cout << "rows = "; cin >> rows;
    cout << "cols = "; cin >> cols;
    two_dimension vec(rows, one_dimension(cols));
 
    for (auto i = 0; i != rows; i++)
        for (auto j = 0; j != cols; j++) {
            cout << '[' << i << "][" << j << "] = ";
            cin >> vec[i][j];
        }
 
    type overall_sum = 0;
 
    for (auto &v : vec) {
        for (auto &x : v) {
            cout << setw(4) << right << x;
            overall_sum += x;
        }
        auto positive_count = count_if( begin(v), end(v), IsPositive );
        cout << fixed << setprecision(1);
        cout << " (+) " << setw(3) << left << positive_count
             << "(-) " << cols - positive_count << endl;
        cout << fixed << setprecision(0);
    }
    cout << "Overall sum = " << overall_sum;
 
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2013, 22:21     Ввести двумерный массив 4*4, подсчитать кол-во (+) и (-) элементов и вывести статистику по строкам, сколько (+), сколько (-) и подсчитать общую сумму
Еще ссылки по теме:

C++ Ввести по строкам с клавиатуры двумерный массив и вычислить среднее арифметическое его элементов
Ввести по строкам с клавиатуры двумерный массив и вычислить среднее арифметическое его элементов C++
C++ Ввести по строкам с клавиатуры двумерный массив и вычислить среднее арифметическое его элементов

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

Или воспользуйтесь поиском по форуму:
mykl
 Аватар для mykl
1 / 1 / 0
Регистрация: 04.03.2012
Сообщений: 68
27.05.2013, 22:21  [ТС]     Ввести двумерный массив 4*4, подсчитать кол-во (+) и (-) элементов и вывести статистику по строкам, сколько (+), сколько (-) и подсчитать общую сумму #13
Olivеr, ещё раз огромное спасибо вам!
Yandex
Объявления
27.05.2013, 22:21     Ввести двумерный массив 4*4, подсчитать кол-во (+) и (-) элементов и вывести статистику по строкам, сколько (+), сколько (-) и подсчитать общую сумму
Ответ Создать тему
Опции темы

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