Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.79/34: Рейтинг темы: голосов - 34, средняя оценка - 4.79
1 / 1 / 2
Регистрация: 14.12.2014
Сообщений: 35
1

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

21.12.2014, 15:05. Показов 6119. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В одномерном массиве, состоящем из n вещественных элементов, вычислить:
• минимальный элемент массива;
• сумму элементов массива, расположенных между первым и последним положительными элементами.
• Преобразовать массив таким образом, чтобы сначала располагались все элементы равные нулю, а потом – все остальные


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "RUS");
int mas[10] = { 5, 3, 7, -4, -8, 11, -3, 3, 8, 7 };
int min = mas[0];
for (int i = 0; i < 10; ++i)
{
    if (mas[i] < min)
    {
        min = mas[i];
    }
    for (int i = 0; i < 10; ++i)
    if
 
}
cout << "Минимальное значение mas= " << min;
cout << "\t\n ";
system("PAUSE");
return 0;
}
как мне найти:
• сумму элементов массива, расположенных между первым и последним положительными элементами.
• Преобразовать массив таким образом, чтобы сначала располагались все элементы равные нулю, а потом – все остальные
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.12.2014, 15:05
Ответы с готовыми решениями:

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

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

Вычислить сумму элементов массива, расположенных между первым и последним положительными элементами
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; int main() { int i,j, n; ...

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

9
91 / 74 / 81
Регистрация: 07.12.2014
Сообщений: 303
21.12.2014, 15:16 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
int ind_per=-1, ind_posl=-1,sum=0;
for (int i = 0; i < 10; i++)
if (mas[i]>0) 
{
ind_per=i;
break;
}
if (ind_per==-1) cout <<"Net pologitelnih"<<endl;
else
{
for (int i = n-1; i >=0; i--)
if (mas[i]>0) 
{
ind_posl=i;
break;
}
if (ind_per==ind_posl)cout <<"tolko 1 pologitelniy"<<endl;
else
if (ind_per-ind_posl==1)cout <<"pologitelnie ryadom"<<endl;
else
{for(i=ind_per+1;i<ind_posl;i++) s+=mas[i];
cout<< "Sum="<<sum<<endl;
}
}
ind d=0;
for (i = 0; i < n; i++)
        if (mas[i] == 0 )
    {
    int buf = mas[i];
    for (int k = i; k >= d; k--)
        mas[k] = mas[k-1];
    mas[d] = buf;
    d++;
    }
0
1 / 1 / 2
Регистрация: 14.12.2014
Сообщений: 35
21.12.2014, 17:33  [ТС] 3
а проще кода нет???
0
91 / 74 / 81
Регистрация: 07.12.2014
Сообщений: 303
21.12.2014, 17:36 4
Newermore999, а куда уж проще то?
0
1 / 1 / 2
Регистрация: 14.12.2014
Сообщений: 35
21.12.2014, 17:40  [ТС] 5
можно хотя бы комментарии добавить?
0
91 / 74 / 81
Регистрация: 07.12.2014
Сообщений: 303
21.12.2014, 17:41 6
Newermore999, где именно непонятно?
0
1 / 1 / 2
Регистрация: 14.12.2014
Сообщений: 35
21.12.2014, 17:43  [ТС] 7
int ind_per=-1, ind_posl=-1,sum=0; почему -1
0
91 / 74 / 81
Регистрация: 07.12.2014
Сообщений: 303
21.12.2014, 17:44 8
Newermore999, чтобы отработать ситуацию, когда положительных элементов вовсе нету, потому что -1 не принадлежит области значений индексов массива
0
24 / 24 / 11
Регистрация: 01.06.2014
Сообщений: 135
21.12.2014, 18:08 9
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Еще как вариант)
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 <iostream>
using namespace std;
 
int main(int argc, char *argv[])
{
    int n, zeroCount = 0; cin >> n;
    double *arr = new double[n], min = 2147483647, *fPtr = nullptr, *lPtr = nullptr;
    for (int i = 0; i < n; i++)
    {
        cin >> arr[i];
        min = arr[i] < min ? arr[i] : min;
        if (arr[i] > 0) 
            if (fPtr)
                lPtr = &arr[i];
            else
            {
                fPtr = &arr[i];
                lPtr = fPtr;
            }
        else if (arr[i] == 0) zeroCount ++;
    }
 
    setlocale(0, "Russian");
    double summ = 0;
    if (fPtr && lPtr - fPtr > 1)
    {
        for(auto ptr = fPtr + 1; ptr < lPtr; ptr++)
            summ += *ptr;
        cout << "Сумма между положительными: " << summ << '\n';
    }
    else
        cout << "Невозможно вычислить сумму\n";
    cout << "Минимальное значение: " << min << '\n';
    double *tempArr = new double[n], *tempPtr = tempArr;
    for (int i = 0; i < zeroCount; i++, tempPtr++) *tempPtr = 0;
    for (int i = 0; i < n; i++) if (arr[i] != 0) {*tempPtr = arr[i]; tempPtr++;};
    for (int i = 0; i < n; i++) cout << tempArr[i] << ' '; cout << '\n';
    system("pause");
    delete [] arr;
    delete [] tempArr;
}
0
1 / 1 / 2
Регистрация: 14.12.2014
Сообщений: 35
21.12.2014, 19:11  [ТС] 10
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
#include <iostream> 
using namespace std;
int main(void)
{
    const int n = 10;
    int mas[n];
    for (int i = 0; i < n; i++)
    {
        cout << "Vvedite element:";
        cin >> mas[i];
    }
 
    int k= 0;
    for (int f = 0; f<n; f++)//поиск первого положительного
    {
        if (mas[f] >= 0)
        {
            k = f; break;
        }
    }
 
    int j = k;
    for (int f = 0; f<n; f++)//поиск последнего положительного
    {
        if (mas[f] >= 0)
        {
            j = f;
        }
    }
 
    int c = 0;
 
    float sum = 0;
    for (int s =k; s <= j; s++)
    {
        sum += mas[s];
        c++;
    }
    cout << "kol elementov = " << c << endl;
    cout << "sum elementov = " << sum << endl;
    system("Pause");
    return 0;
}
куда надо засунуть код для вычисления минимума ,чтобы он работал
C++
1
2
3
4
5
6
7
8
9
10
11
int min = mas[0];
 
    int min = mas[0];
    for (int i = 0; i < n; ++i)
    {
        if (mas[i] < min)
        {
            min = mas[i];
        }
 
    }
Добавлено через 7 минут
все не надо , я уже разобрался
0
21.12.2014, 19:11
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.12.2014, 19:11
Помогаю со студенческими работами здесь

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

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

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

Неправильно считает сумму элементов массива, расположенных между первым и последним положительными элементами
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &quot;conio.h&quot; #include &lt;stdio.h&gt; #include...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru