Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Evilick
0 / 0 / 0
Регистрация: 16.11.2017
Сообщений: 9
1

Вычисление суммы всех положительных элементов двумерного массива

18.11.2017, 15:02. Просмотров 1012. Ответов 12

Доброго времени суток. Вынужден обратиться за вашей помощью. Мне необходимо выполнить :"Дан массив C(NxM) с элементами вещественного типа. Написать программу для вычисления суммы всех положительных элементов массива." Я до конца не понимаю как это сделать, прошу предоставить алгоритм решения
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2017, 15:02
Ответы с готовыми решениями:

Вычислить суммы положительных элементов в каждой строке двумерного массива
Вычислить суммы положительных элементов в каждой строке двумерного массива в С++ Builder 6.0

Найти количество всех положительных элементов двумерного массива
Дан двумерный массив размерностью N x M (N и М вводятся с клавиатуры). Найти количество всех...

Найти произведение всех положительных элементов двумерного динамического массива
Составить программу нахождения произведения всех положительных элементов двумерного динамического...

Вычисление разницы произведения и суммы положительных элементов массива
Помогите пожалуйста написать программу Дан вектор A, который содержит n элементов. Вычисление ...

Вычисление суммы и определение номеров положительных элементов массива
Задан массив целых чисел из 10 элементов.Программа вычисляет сумму положит. элементов И выводит...

12
SlavaSokolov
170 / 134 / 105
Регистрация: 14.04.2016
Сообщений: 735
18.11.2017, 15:06 2
Evilick, даю подсказку простой алгоритм на C++
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
Создаём масссив
Заполняем значениями
Объявляем переменную, в которой будет хранится сумма
Делаем один цикл for
{
   Второй цикл for
   {
       Берём значение из масива.
       Сравниваем его с нулём.
       Принимаем решение
   }
}
Выводим сумму на экран
1
Evilick
0 / 0 / 0
Регистрация: 16.11.2017
Сообщений: 9
18.11.2017, 15:53  [ТС] 3
можно немного подробней
0
Herji
292 / 202 / 174
Регистрация: 11.05.2016
Сообщений: 658
Завершенные тесты: 1
18.11.2017, 16:35 4
Цитата Сообщение от Evilick Посмотреть сообщение
можно немного подробней
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
Создаём двумерный масссив вещественных чисел С, размерностью MxN
Заполняем значениями
Объявляем вещественную переменную, в которой будет хранится сумма, значение ставим "0"
Делаем один цикл for для столбов (M)
{
   Второй цикл for для строк (N)
   {
       Берём значение из масива. //C[столб][строка]
       Сравниваем его с нулём. //>0
       Принимаем решение // прибавляем значение к сумме, или не прибавляем
   }
}
Выводим сумму на экран
Добавлено через 3 минуты
Вы попробуйте хотя бы, а мы исправим, если что)
0
Evilick
0 / 0 / 0
Регистрация: 16.11.2017
Сообщений: 9
18.11.2017, 16:46  [ТС] 5
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
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
const int N = 3;
 const int M = 4;
 
 int C[N][M]
 {
     {1,3,5,6},
 {2,6,8,9},
 {23,12,31,11}
 };
 float summa = 0;
 for (int i = 0; i < N; i++) 
 {
for (int j=0;j<M;j++)
{ 
 C[N][M]>0
 
}
 
 
 
    system("pause");
    return 0;
}
0
SlavaSokolov
170 / 134 / 105
Регистрация: 14.04.2016
Сообщений: 735
18.11.2017, 16:49 6
Уже что-то. Вот вы выбрали элемент.
C++
1
C[N][M]
Так дела не делаются.
Вам надо использовать оператор if(условие).
C++
1
2
3
4
if (C[N][M] > 0) //Если условие в скобках верно( в нашем случае если элемент положительный), то выполнить команды, которые записаны в теле (это то, что находится между {})
{
   Что-то сделать//Проявите фантазию. 
}
0
Herji
292 / 202 / 174
Регистрация: 11.05.2016
Сообщений: 658
Завершенные тесты: 1
18.11.2017, 16:59 7
Лучший ответ Сообщение было отмечено Evilick как решение

Решение

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
#include <iostream>
#include <cmath>
 
using namespace std;
int main()
{
    const int N = 3; //const - молодец)
    const int M = 4;
 
    //int C[N][M] //!!!!!!! =========
    float C[N][M] = // !!!!! прочитайте про типы данных, Вам нужны вещественные, 
                    // раз у Вас float на выходе - поставил тут его же
                    {
                        {1.999,-3.0,-5.123,-6.0134}, // дописал
                        {2.13,-6.234,-8.0,9.1},
                        {-23.3,-12.214,-31.2145,11.36}
                    };
 
    float summa = 0;
 
    for (int i = 0; i < N; i++) 
    {
        for (int j=0;j<M;j++)
        { 
            //C[M][N] - всегда одно число, циклы запускаем для 
            //"пробежки" по всему массиву, меняем переменные i и j, соотв-но,
            //и бегаем по C[i][j]
            if(C[i][j]>0) summa+=C[i][j]; // прибавляем, если больше нуля
        }
    } //следим за скобками
 
    cout << "\n\n Summ = " << summa; //бонус
 
system("pause");
return 0;
}
1
Evilick
0 / 0 / 0
Регистрация: 16.11.2017
Сообщений: 9
18.11.2017, 17:07  [ТС] 8
можно ли модернизировать, что бы весь массив заполнялся рандомными числами, а не только одна ячейка как у меня? И спасибо большое, очень помог)
0
Herji
292 / 202 / 174
Регистрация: 11.05.2016
Сообщений: 658
Завершенные тесты: 1
18.11.2017, 17:47 9
Цитата Сообщение от Evilick Посмотреть сообщение
можно ли модернизировать, что бы весь массив заполнялся рандомными числами
можно, разрешаю.

После объявления массива два цикла по аналогии, к С[i][j] присваивай ((rand()%11) - 5) - даст диапазон [-5;5];
Числа будут целыми и одними и теми же для любого запуска.

Почитай про rand() и srand().
Намёк: вещественные рандомные получатся с использованием деления
0
lby
0 / 0 / 0
Регистрация: 22.10.2018
Сообщений: 3
28.10.2018, 19:24 10
как сделать эту задачу в динамическом массиве?
0
lby
0 / 0 / 0
Регистрация: 22.10.2018
Сообщений: 3
12.11.2018, 12:46 11
Программисты, ау! Помогите кто может, объясните!!
0
JAlHund
35 / 23 / 13
Регистрация: 14.10.2018
Сообщений: 52
12.11.2018, 13:02 12
Тоже самое, только вначале
C++
1
2
3
int** Mas = new int *[n];
    for (int i = 0; i < n; ++i)
        Mas[i] = new int [m];
, а в конце
C++
1
2
3
for (i = 0; i < n; i++)
        delete[] Mas[i];
    delete [] Mas;
0
Yetty
845 / 697 / 587
Регистрация: 18.12.2017
Сообщений: 2,750
12.11.2018, 15:05 13
JAlHund, по условию числа вещественные

lby, используйте тип double
0
12.11.2018, 15:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.11.2018, 15:05

Вычисление среднеарифметического всех положительных элементов массива
Помогите! Вычисление среднеарифметического всех положительных элементов массива. Длина массива...

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

Найти квадратный корень из суммы всех положительных элементов двухмерного массива
помогите очень-очень решить две задачки по массивам 1.Вычислить сумму элементов, больше, чем ...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

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