Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
149 / 94 / 48
Регистрация: 27.11.2015
Сообщений: 1,199
1

Найти максимальный элемент массива и сумму элементов массива по условию

04.12.2015, 08:58. Просмотров 1311. Ответов 13

Доброе утро!...Уже и не знаю в чём дело....Вот тебе и заочное отделение

Написать программу, работающую с одномерным вещественным массивом.
Исходные данные:
- количество элементов N=20;
- тип массива – вещественный.
- Интервал [a,b] принять равным a = 3.1 и b = 7.9
-Массив:
-1.50 3.12 -0.15 1.17 7.77 -6.27 2.78 5.09 -9.31 -2.99
0.75 8.54 -9.31 4.27 3.12 0.10 -9.46 3.82 8.14 -3.64


1)Найти максимальный элемент массива.
2)Найти сумму элементов массива, расположенных до последнего положительного элемента.
3)Сжать массив, удалив из него все элементы, модуль которых находится в интервале[a,b]. Освободившиеся в конце массива элементы заполнить нулями.
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
#include <locale>
#include <iostream>
#include <stdlib.h>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"");
    
    int i;
    int N=20;
    double mas1[21] = {-1.50, 3.12, -0,15, 1.17, 7.77, -6.27,  2.78, 5.09, -9.31, -2.99, 0.75, 8.54, -9.31, 4.27, 3.12,  0.10, -9.46, 3.82,  8.14, -3.64};
    double max=mas1[0];
        for (double i = 0; i < 10; ++i)     
    {       
        if (mas1[21]>max)
            max=mas1[21];
    }
    cout<<"max: "<<max<<endl;
    
 
 
return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.12.2015, 08:58
Ответы с готовыми решениями:

Найти максимальный по модулю элемент массива и сумму элементов массива, отвечающих условию
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) максимальный по модулю...

Найти максимальный элемент массива; найти произведение элементов массива, удовлетворяющих условию
В одномерном массиве, состоящим из n целых элементов, вычислить: Номер максимального элемента...

Найти сумму тех элементов массива, цифровая запись которых дает четную сумму цифр, а также найти максимальный элемент массива
Вот, что есть.Помогите довести до ума! #include &lt;cstdlib&gt; #include &lt;iostream&gt; #include...

Найти сумму элементов массива, максимальный и минимальный элемент массива
Дан массив из N элементов на отрезке из найти сумму элементов массива , максимальный и минимальный...

13
6816 / 5957 / 2708
Регистрация: 14.04.2014
Сообщений: 25,504
04.12.2015, 09:04 2
Во-первых, почему 21, если сказано 20? Во вторых, зачем ты размер везде пишешь? В циклах должен быть индекс и он целочисленный. Внимательно сравнивай.
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
#include <locale>
#include <iostream>
#include <stdlib.h>
 
using namespace std;
 
int main()
{
setlocale(LC_ALL,"");
 
int i;
const int N=20;
double mas1[N] = {-1.50, 3.12, -0,15, 1.17, 7.77, -6.27, 2.78, 5.09, -9.31, -2.99, 0.75, 8.54, -9.31, 4.27, 3.12, 0.10, -9.46, 3.82, 8.14, -3.64};
 
double max=mas1[0];
for (int i = 1; i < 10; ++i)
{
    if (mas1[i]>max) max=mas1[i];
}
cout<<"max: "<<max<<endl;
 
 
 
return 0;
}
1
149 / 94 / 48
Регистрация: 27.11.2015
Сообщений: 1,199
04.12.2015, 09:15  [ТС] 3
Спасибо! Всё бы хорошо, но VS 2012 пишет "слишком много инициализаторов" и указывает на последнее число массива, я указываю размер 20, пишет ошибка, а вот 21 уже всё в порядке...С N сейчас тоже самое...не компелирует из-за этой ошибки((
0
1355 / 579 / 198
Регистрация: 02.08.2011
Сообщений: 2,876
04.12.2015, 09:46 4
Цитата Сообщение от ShmelVG Посмотреть сообщение
Спасибо! Всё бы хорошо,
Писать надо внимательно
Цитата Сообщение от ShmelVG Посмотреть сообщение
{-1.50, 3.12, -0,15,
0.15
0
149 / 94 / 48
Регистрация: 27.11.2015
Сообщений: 1,199
04.12.2015, 10:21  [ТС] 5
Спасибо!!! Действительно проглядел, помогло, но частично, выдаёт максимум 7.77, но должно ведь быть 8.54...
0
-L
15 / 9 / 12
Регистрация: 03.12.2015
Сообщений: 79
04.12.2015, 11:24 6
ShmelVG,

C++
1
i < 10
а элементов-то сколько-сколько...
0
149 / 94 / 48
Регистрация: 27.11.2015
Сообщений: 1,199
04.12.2015, 11:50  [ТС] 7
Ахахаха))))Спасибо)))Что-то точно у меня сегодня с внимательностью))))

Добавлено через 12 минут
Цитата Сообщение от ShmelVG Посмотреть сообщение
2)Найти сумму элементов массива, расположенных до последнего положительного элемента.
А с этим кто-нибудь может подсказать?
0
-L
15 / 9 / 12
Регистрация: 03.12.2015
Сообщений: 79
04.12.2015, 12:14 8
ShmelVG,

Алгоритм может быть такой:

1. Пробежаться в обратном цикле (от последнего элемента массива к началу). Если i-ый элемент > 0 , то сохранить его индекс в переменную и завершить цикл.
2. Пробежаться в прямом цикле (от начала к концу) по массиву до сохранённого значения, складывая все элементы подряд.

Добавлено через 4 минуты
Типа такого:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int index = 0;
for (int i = N-1; i >= 0; --i)
{
    if (mas1[i]>0) 
   {
        index=i;
        break;
    }
}
 
double sum = 0;
for (int i = 0; i < index; ++i)
{
    sum = sum + mas1[i];
}
0
149 / 94 / 48
Регистрация: 27.11.2015
Сообщений: 1,199
04.12.2015, 13:00  [ТС] 9
Классно!) Но я вот не пойму т.е. по идее он должен тут складывать все положительные числа, но ответ он мне выдал 1.54 , мы же вытащили все положительные числа и сложили. Далее, согласно условию,я полагаю что имеется ввиду сложить всё кроме последнего числа(в данном случае сложить все числа кроме -3.64), но опять же ответ у меня не сходится...
0
-L
15 / 9 / 12
Регистрация: 03.12.2015
Сообщений: 79
04.12.2015, 13:16 10
ShmelVG,

в задаче сказано найти сумму элементов массива до последнего положительного, то есть складывает он все элементы независимо от того, положительные ли они или отрицательные. "до" последнего для меня означает (i < index), а не включительно последний (i <= index)
0
6816 / 5957 / 2708
Регистрация: 14.04.2014
Сообщений: 25,504
04.12.2015, 13:16 11
8.14 тоже не учитывается.
0
-L
15 / 9 / 12
Регистрация: 03.12.2015
Сообщений: 79
04.12.2015, 13:53 12
nmcf, об этом и речь. Последний положительный 8.14. Если нужно сложить те, что до него, то не надо учитывать. Если включительно, то надо учитывать. По сути замена в моём коде < на <=
0
149 / 94 / 48
Регистрация: 27.11.2015
Сообщений: 1,199
04.12.2015, 15:02  [ТС] 13
Спасибо, разобрался в этом!))
Цитата Сообщение от ShmelVG Посмотреть сообщение
3)Сжать массив, удалив из него все элементы, модуль которых находится в интервале[a,b]. Освободившиеся в конце массива элементы заполнить нулями.
...А есть какие -нибудь идеи на счёт этого?
0
149 / 94 / 48
Регистрация: 27.11.2015
Сообщений: 1,199
24.01.2016, 16:49  [ТС] 14
Вот получилось как-то так:

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 <locale>
#include <iostream>
#include <stdlib.h>
 
using namespace std;
 
int main()
{
setlocale(LC_ALL,"");
 
int i;
const int N=20;
double mas1[N] = {-1.50, 3.12, -0.15, 1.17, 7.77, -6.27, 2.78, 5.09, -9.31, -2.99, 0.75, 8.54, -9.31, 4.27, 3.12, 0.10, -9.46, 3.82, 8.14, -3.64};
 
double max=mas1[0];
for (int i = 1; i < 20; ++i)
{
    if (mas1[i]>max) max=mas1[i];
}
cout<<"max: "<<max<<endl;
 
int index = 0;
for (int i = N-1; i >= 0; --i)
{
    if (mas1[i]>0) 
   {
        index=i;
        break;
    }
}
 
double sum = 0;
for (int i = 0; i < index; ++i)
{
    sum = sum + mas1[i];
}
cout<<"Сумма элементов = "<<sum<<endl;
 
 
return 0;
}
А можете подсказать как сжать массив, удалив из него все элементы, модуль которых находится в интервале[3.1,7.9] и освободившиеся в конце массива элементы заполнить нулями??
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.01.2016, 16:49

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Найти минимальный и максимальный элемент массива.Найти сумму всех элементов массива
Проверьте пожалуйста программу. Program lb4; var i,j,k,l,m,n,v:integer; mass:array of real;...

Найти сумму элементов массива и максимальный элемент
нада найти суму елементов массива и максимальний елемент. вот текс програми. тут ещет только...

Найти максимальный элемент и сумму положительных элементов одномерного массива
Даны действительные числа а1, а2, а3, ... , аn; n&lt;=30. Найти максимальный элемент и сумму...

Найти сумму элементов столбца, содержащего максимальный элемент массива В(4,4)
Помогите пожалуйста :cry: 1)Найти сумму элементов столбца, содержащего максимальный элемент...


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

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

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