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

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

18.11.2017, 15:02. Просмотров 765. Ответов 8

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

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

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

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

Написать программу для вычисления суммы положительных элементов массива
Дано массив размером 7x5 с элементами действительного(вещественного) типа....

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

8
SlavaSokolov
170 / 134 / 105
Регистрация: 14.04.2016
Сообщений: 729
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
290 / 202 / 173
Регистрация: 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

Не по теме:

#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;
}



Добавлено через 25 секунд
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
#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
Сообщений: 729
18.11.2017, 16:49 #6
Уже что-то. Вот вы выбрали элемент.
C++
1
C[N][M]
Так дела не делаются.
Вам надо использовать оператор if(условие).
C++
1
2
3
4
if (C[N][M] > 0) //Если условие в скобках верно( в нашем случае если элемент положительный), то выполнить команды, которые записаны в теле (это то, что находится между {})
{
   Что-то сделать//Проявите фантазию. 
}
0
Herji
290 / 202 / 173
Регистрация: 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
290 / 202 / 173
Регистрация: 11.05.2016
Сообщений: 658
Завершенные тесты: 1
18.11.2017, 17:47 #9
Цитата Сообщение от Evilick Посмотреть сообщение
можно ли модернизировать, что бы весь массив заполнялся рандомными числами
можно, разрешаю.

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

Почитай про rand() и srand().
Намёк: вещественные рандомные получатся с использованием деления
0
18.11.2017, 17:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.11.2017, 17:47

Составить программу для вычисления по формуле X - сумма всех элементов массива; Y - произведение положительных
Составить программу для вычисления по формуле X - сумма всех элементов...

залить из двумерного массива данные в одномерный длиной, равной количеству всех элементов исходного массива
Доброго времени суток :) Образовался новый глупый вопрос... Предположим у меня...

Нахождение суммы всех элементов массива и суммы первых 3-х элементов массива
Нужно создать алгоритм нахождения суммы всех элементов массива А и В ,и сумму...


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

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

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