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

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

22.02.2019, 17:33. Просмотров 224. Ответов 4
Метки нет (Все метки)

В одномерном массиве, состоящем из n целых элементов, вычислить:
1)сумму элементов массива, расположенных между первым и последним нулевыми элементами.
2)преобразовать массив таким образом, чтобы сначала располагались все положительные элементы, а потом – все отрицательные (элементы, рав-ные 0, считать положительными); порядок следования элементов массива в выделенных группах не менять.

 Комментарий модератора 
П.5.16.Правил
Запрещено создавать темы с множеством вопросов во всех разделах, кроме разделов платных услуг. Один вопрос - одна тема.

Мой код(не доделанный):
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
#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <ctime>
#include <cmath>
 
using namespace std;
 
int main(){
    setlocale(LC_ALL, "Rus");
    srand(time(0));
    int n, i,sum=0,n1,n2;
    int *A = new int[n];
    cout << "Введите кол-во эл-ов массива: ";
    cin >> n;
    cout << "Массив: ";
    for (i = 0; i<n; i++) {
        A[n] = rand() % 11-5;
        cout << A[n] << "\t";   
    }
  
    for (i = 0; i<n; i++){
        if (A[i]<0)
            n1 = i;
    }
    for (i = n; i>0; i--){
        if (A[i]<0)
            n2 = i;
    }
    for (i = n2; i<n1; i++){
        n2 += A[i];
    }
 
    cout << "\nСумма элементов между первым и последним нулевыми элементами:\n  " << s2;
 
    delete[] A;
    _getch();
    return 0;
}
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.02.2019, 17:33
Ответы с готовыми решениями:

Вычислить сумму элементов массива, расположенных между первым и последним нулевыми элементами
В одномерном массиве, состоящем из N целых элементов, вычислить: - Сумму элементов массива,...

Вычислить сумму элементов массива, расположенных между первым и последним нулевыми элементами
С одномерным массивом, состоящим из n целочисленных элементов, произвести следующие операции: 2)...

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

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

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

4
ReDoX
439 / 327 / 170
Регистрация: 01.07.2015
Сообщений: 1,162
22.02.2019, 17:54 2
Цитата Сообщение от Camb Посмотреть сообщение
сумму элементов массива, расположенных между первым и последним нулевыми элементами.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// a - int array
 
if (count(a, a + n, 0) >= 2) {
  int f = 0;
  for (int i = 0; i < n; ++i) { if (a[i] == 0) {f = i; break;}}
 
  int s = 0;
  for (int i = n - 1; i >= 0; --i) { if (a[i] == 0) {s = i; break;}}
 
  int sum = 0;
 
  for (++f; f < s; ++f) sum += a[f];
 
  cout << "sum = " << sum;
}
0
Camb
0 / 0 / 0
Регистрация: 13.12.2018
Сообщений: 3
27.02.2019, 19:21  [ТС] 3
То есть надо добавить условие и изменить последний фор, я правильно понял? или где count- подпрограмма?


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
if (count(A, A + n, 0) >= 2) {
for (i = 0; i<n; i++){
        if (A[i]<0)
            n1 = i;
    }
    for (i = n; i>0; i--){
        if (A[i]<0)
            n2 = i;
    }
    for (++n1; n1<n2; n1++){
        sum += A[n1];
    }
cout << "sum = " << sum;
0
ReDoX
439 / 327 / 170
Регистрация: 01.07.2015
Сообщений: 1,162
27.02.2019, 19:54 4
Цитата Сообщение от Camb Посмотреть сообщение
или где count- подпрограмма
в algorithm

Цитата Сообщение от Camb Посмотреть сообщение
То есть надо добавить условие и изменить последний фор, я правильно понял?
ваш код не читал. Писал свой с нуля
0
jugu
213 / 138 / 26
Регистрация: 11.01.2019
Сообщений: 565
27.02.2019, 21:56 5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <vector>
#include <algorithm>
#include <numeric>
 
int sum_between_end_zeroes(const std::vector<int> & v) {
    auto first_zero = std::find(v.cbegin(), v.cend(), 0);
    if (first_zero == v.cend()) return 0;
    auto next_zero = std::find(first_zero + 1, v.cend(), 0);
    if (next_zero == v.cend()) return 0;
    auto last_zero = next_zero;
    while ((next_zero = std::find(next_zero + 1, v.cend(), 0)) != v.cend()) last_zero = next_zero;
    return std::accumulate(first_zero, last_zero, 0);
}
 
int main()
{
    std::vector<int> v{ 2, 4, 0, 4, 0, 2, 3, 7, 0, 7, 9, 0, 4, 5, 11, 6 };
    auto sum = sum_between_end_zeroes(v);
    return 0;
}
0
27.02.2019, 21:56
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.02.2019, 21:56

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

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

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

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


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

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

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