Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
d1esel
0 / 0 / 0
Регистрация: 26.12.2012
Сообщений: 12
#1

Одномерные массивы - C++

19.09.2013, 14:43. Просмотров 1211. Ответов 6
Метки нет (Все метки)

Прошу помочь с заданием

В одномерном массиве, состоящем из n вещественных элементов, вычислить:

1) произведение отрицательных элементов массива ;

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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
#include <iostream>
 
#include <math.h>
 
#include <conio.h>
 
using namespace std;
 
int main() 
 
{ 
 
const int n = 10; 
 
double a[n] = {4.2, -5.8, -3.7, 7, 9, 1.7, 1, -2.4, -5, 3.8};
 
int i, j;
 
// Печать массива 
 
for (i = 0; i < n; i++)
 
cout << a[i] << " "; 
 
cout << endl; 
 
//Сумма отрицательных элементов массива 
 
double sum = 0; 
 
for (i = 0; i < n; i++)
 
if(a[i] < 0)sum += a[i]; 
 
cout << "sum = " << sum << '\n';
 
//Номера максимального и минимального элементов массива
 
int i1, i2; 
 
i1 = 0; i2 = 0;
 
for (i = 1; i < n; i++)
 
{ 
 
if(a[i] > a[i1])i1 = i; 
 
if(a[i] < a[i2])i2 = i;
 
} 
 
cout << i1 << " " << i2 << '\n'; 
 
//Если номер максимального элемента больше, чем номер минимального 
 
//элемента, то номера переставить
 
if(i1 > i2) 
 
{ 
 
i = i1; i1 = i2; i2 = i; 
 
} 
 
cout << i1 << " " << i2 << '\n'; 
 
//Произведение элементов массива между максимальным и // минимальным элементами
 
double pr = 1.0; 
 
for (i = i1 + 1; i < i2; i++)
 
pr *= a[i];
 
cout << "pr = " << pr << '\n';
 
//Сортировка элементов массива по возрастанию
 
for(i = 0; i < n - 1; i++)
 
{ 
 
int k = i;
 
for(j = i; j < n; j++)
 
if(a[j]< a[k]) k = j;
 
double temp = a[i];
 
a[i] = a[k];
 
a[k] = temp;
 
} 
 
//Печать массива после сортировки
 
for (i = 0; i < n; i++) 
 
cout << a[i] << " "; 
 
cout << endl; 
 
_getch(); 
 
return 0;
 
}


Вот текст решенной задачи:
В одномерном массиве, состоящем из вещественных элементов, вычислить:

1) сумму отрицательных элементов массива ;

2) произведение элементов массива, расположенных между максимальным и минимальным элементами.

Упорядочить элементы массива по возрастанию.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.09.2013, 14:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Одномерные массивы (C++):

Одномерные массивы - C++
Нужна помощь: как в одномерном массиве, в котором не задан размер, найти первый и последний элементы??? Например, даны две задачки: ...

Одномерные массивы - C++
Помогите плз если не трудно) В одномерном массиве состоящем из n вещественых элементов вычислить: 1) Количество элементов меньше С 2)...

Одномерные массивы - C++
Задание во вложении, сделал как понял задание, но с ошибками, которые ни как не могу найти. Даны 3 одномерных массива, в каждом посчитать...

Одномерные массивы - C++
Очень прошу помочь составить код (или направить мысли в правильное русло). Необходимо решить следующую поставленную задачу: В одномерном...

одномерные массивы - C++
Помогите, пожалуйста, сделать задание, ну хотя бы намекните! В одномерном массиве, который состоит из n действительных чисел, найти сумму...

C++ Одномерные массивы - C++
1. В одномерном массиве, состоящем из n вещественных элементов, вычислить: - сумму отрицательных элементов массива; - произведение...

6
m1Rr0r
247 / 230 / 15
Регистрация: 05.02.2010
Сообщений: 3,262
Завершенные тесты: 2
19.09.2013, 14:59 #2
1)
C++
1
2
if(a[i] < 0)
sum *= a[i];
1
power12
6 / 6 / 1
Регистрация: 14.04.2010
Сообщений: 100
19.09.2013, 15:00 #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    double summ_otr = 0;
 
    const int n = 10; 
    double a[n] = {4.2, -5.8, -3.7, 7, 9, 1.7, 1, -2.4, -5, 3.8};
 
    for(int i = 0; i < n; i++)
    {
        if (a[i] < 0)
        {
            summ_otr += a[i];
        }
    }
 
    cout << summ_otr;
1
KroKuZ
41 / 41 / 7
Регистрация: 16.12.2012
Сообщений: 162
19.09.2013, 15:01 #4
d1esel,
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
53
54
55
56
57
58
59
60
include <iostream>
 
#include <math.h>
 
#include <conio.h>
 
using namespace std;
 
int main() 
 
{ 
 
int n; 
cout <<  "Vvedite n: " << endl;
cin n; 
 
int i, j;
for (i = 0; i < n; i++)
   cin >> a[i];
 
//Произведение отрицательных элементов массива 
 
double mul = 1; 
 
for (i = 0; i < n; i++)
 
if(a[i] < 0)mul *= a[i]; 
 
cout << "multi = " <<  mul << '\n';
 
//Номер максимального элементa массива
 
int i1; 
 
i1 = 0;
 
for (i = 1; i < n; i++)
{ 
if(a[i] > a[i1])i1 = i; 
} 
 
//Сумма элементов массива до максимального элемента
 
double sum = 0; 
 
for (i = 0; i < i1; i++)
if (a[i] > 0) 
sum += a[i];
 
cout << "sum = " << sum << endl;
 
//Вывод в обратном порядке
 
for (i = n - 1; i >= 0; i--) 
   cout  << a[i] << endl; 
 
_getch(); 
 
return 0;
}
1
m1Rr0r
247 / 230 / 15
Регистрация: 05.02.2010
Сообщений: 3,262
Завершенные тесты: 2
19.09.2013, 15:03 #5
2)Находим индекс максимального элемента
C++
1
2
3
4
int index = 0;
for(int i = 0; i < n; i++)
if(a[i] > a[index])
index = i;
и считаем сумму до этого элемента
C++
1
2
for(int i = 0; i < index; i++)
sum += a[i];
1
SatanaXIII
Супер-модератор
Эксперт С++
5619 / 2654 / 247
Регистрация: 01.11.2011
Сообщений: 6,554
Завершенные тесты: 1
19.09.2013, 15:16 #6
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
53
54
#include <iostream>
#include <math.h>
#include <conio.h>
 
using namespace std;
 
int main()
{
int i;
const int n = 10;
double a[n] = {4.2, -5.8, -3.7, 7.0, 9.0, 1.7, 1.0, -2.4, -5, 3.8};
 
for (i = 0; i < n; i++)  //// Вывод на экран
  cout << a[i] << " ";     //  первоначального массива
                           //
cout << endl;            ////
 
double mul = 1;                  //// Произведение отрицательных
for (i = 0; i < n; i++)            //
  if(a[i] < 0)                     //
    mul *= a[i];                   //
                                   //
cout << "mul = " << mul << endl; ////
 
double sum;                      //// Сумма положительных
if(a[0]>=0)                        //  до наибольшего
  sum = a[0];                      //
else                               //
  sum = 0;                         //
double max = a[0];                 //
for (i = 0; i < n; i++)            //
  if(max < a[i])                   //
    {                              //
    sum += a[i];                   //
    max = a[i];                    //
    }                              //
                                   //
cout << "sum = " << sum << endl; ////
 
double temp = 0;            //// Поменять местами
for (i = 0; i < n/2; i++)     //
  {                           //
  temp = a[i];                //
  a[i] = a[n-1-i];            //
  a[n-1-i] = temp;            //
  }                         ////
 
for (i = 0; i < n; i++)  // Вывод получившегося массива
  cout << a[i] << " ";   //
 
 
cin.ignore();
return 0;
}
1
d1esel
0 / 0 / 0
Регистрация: 26.12.2012
Сообщений: 12
21.09.2013, 13:43  [ТС] #7
всем большое спасибо
все работает
0
21.09.2013, 13:43
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.09.2013, 13:43
Привет! Вот еще темы с ответами:

Одномерные массивы - C++
Здравствуйте, помогите пожалуйста с решением задачи!!! Только начал изучать не все понимаю, буду очень благодарен. Даны действительные...

Одномерные массивы. - C++
Помогите пожалуйста! На завтра нужна прога в С++, а у меня ничего не выходит=(.Известны данные о численности населения (в млн жителей) и...

Одномерные массивы - C++
Заданны 2 одномерных массива A и B размерностью N. Составить программу, проверяющую можно ли, меняя местами элементы массива A получить...

Одномерные массивы - C++
Здравствуйте уважаемы программисты! И снова я прибегаю к вашей помощи! Вот задачка: В одномерном массиве все отрицательные заменить...


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

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

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