Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
 Аватар для mykl
1 / 1 / 0
Регистрация: 04.03.2012
Сообщений: 66

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

27.05.2013, 20:49. Показов 1372. Ответов 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
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;
}
научился делать хороший и нужный массив...
как правильно встроить подсчет + и -?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.05.2013, 20:49
Ответы с готовыми решениями:

Ввести массив А(10), подсчитать сколько в нем четных, сколько нечетных элементов
2. Ввести массив А(10), подсчитать сколько в нем четных, сколько нечетных элементов.

Ввести с клавиатуры двумерный массив из 9 чисел, подсчитать сумму элементов всего массива
Ввести с клавиатуры двумерный массив из 9 чисел, подсчитать сумму элементов всего массива

Ввести с клавиатуры двумерный массив из 9 чисел, подсчитать сумму элементов третьего столбца
Ввести с клавиатуры двумерный массив из 9 чисел, подсчитать сумму элементов третьего столбца.

12
 Аватар для Olivеr
415 / 411 / 95
Регистрация: 06.10.2011
Сообщений: 832
27.05.2013, 21:17
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;
}
0
 Аватар для mykl
1 / 1 / 0
Регистрация: 04.03.2012
Сообщений: 66
27.05.2013, 21:23  [ТС]
Olivеr, не работает (
Миниатюры
Ввести двумерный массив 4*4, подсчитать кол-во (+) и (-) элементов и вывести статистику по строкам, сколько (+), сколько (-) и подсчитать общую сумму  
0
 Аватар для Olivеr
415 / 411 / 95
Регистрация: 06.10.2011
Сообщений: 832
27.05.2013, 21:27
Забыл сказать, что у меня компилятор не Майкрософта, а GCC MinGW
Я могу Вам посоветовать включить поддержку С++11. Может тогда и заработает.
Миниатюры
Ввести двумерный массив 4*4, подсчитать кол-во (+) и (-) элементов и вывести статистику по строкам, сколько (+), сколько (-) и подсчитать общую сумму  
1
 Аватар для mykl
1 / 1 / 0
Регистрация: 04.03.2012
Сообщений: 66
27.05.2013, 21:34  [ТС]
Olivеr, спасибо то-то я и смотрю, что код немного не тот
а не подскажете как включить эту поддержку?)
просто вряд ли в университетах и др. учебных заведениях эта поддержка включена
0
 Аватар для Olivеr
415 / 411 / 95
Регистрация: 06.10.2011
Сообщений: 832
27.05.2013, 21:41
К сожалению не подскажу потому, что не пользуюсь таким инструментом. В интернетах пишут, что она включена по умолчанию.
Попробуйте так (убрал 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;
}
0
 Аватар для mykl
1 / 1 / 0
Регистрация: 04.03.2012
Сообщений: 66
27.05.2013, 21:44  [ТС]
Olivеr, на accumulate ругается
Миниатюры
Ввести двумерный массив 4*4, подсчитать кол-во (+) и (-) элементов и вывести статистику по строкам, сколько (+), сколько (-) и подсчитать общую сумму  
0
 Аватар для Olivеr
415 / 411 / 95
Регистрация: 06.10.2011
Сообщений: 832
27.05.2013, 21:49
Кликните здесь для просмотра всего текста
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;
}
1
 Аватар для mykl
1 / 1 / 0
Регистрация: 04.03.2012
Сообщений: 66
27.05.2013, 21:54  [ТС]
Olivеr, спасибо! теперь работает безотказно
не подскажете ещё как сделать подсчёт (+) и (-) элементов не в процентах, а ещё отдельно в кол-ве?
0
 Аватар для Olivеr
415 / 411 / 95
Регистрация: 06.10.2011
Сообщений: 832
27.05.2013, 21:59
Кликните здесь для просмотра всего текста
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;
}
1
 Аватар для mykl
1 / 1 / 0
Регистрация: 04.03.2012
Сообщений: 66
27.05.2013, 22:03  [ТС]
Olivеr, благодарю!

Добавлено через 2 минуты
Olivеr, и ещё, блин хах замотал уже наверное вас(
возможно ли здесь сделать вариант ввода массива без рандома?
0
 Аватар для Olivеr
415 / 411 / 95
Регистрация: 06.10.2011
Сообщений: 832
27.05.2013, 22:18
Кликните здесь для просмотра всего текста
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;
}
1
 Аватар для mykl
1 / 1 / 0
Регистрация: 04.03.2012
Сообщений: 66
27.05.2013, 22:21  [ТС]
Olivеr, ещё раз огромное спасибо вам!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.05.2013, 22:21
Помогаю со студенческими работами здесь

Случайным образом генерируется двумерный массив, подсчитать сумму по строкам
Задача: Случаным образом генерируется двумерный массив в dataGridView(в этом основной вопрос), подсчитать сумму по строкам Плиз,...

Ввести линейный целочисленный массив до 50 элементов,подсчитать сумму четных элементов,вывести элементы находящиеся в заданном диапазоне
Ввести линейный целочисленный массив до 50 элементов,подсчитать сумму четных элементов,вывести элементы находящиеся в заданном диапазоне....

Ввести целочисленный двумерный массив AN×N , вывести его. Определить K – сколько нечётных элементов содержится на диагоналях массива.
Ввести целочисленный двумерный массив AN×N , вывести его. Определить K – сколько нечётных элементов содержится на диагоналях массива. Далее...

Массив: Подсчитать сумму некратных 3 элементов по строкам полученной матрицы
Нуждаюсь в помощи! Нужно Создать приложение, которое по введенной количества строк и столбцов формирует случайным образом двухмерном массив...

Ввести строку. Подсчитать сколько раз в ней встречаются строчные и сколько раз заглавные русские буквы
Всем привет. Очень хотелось бы что бы помогли с решением данной задачи. Ввести строку. Подсчитать сколько раз в ней встречаются строчные...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru