Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
Алена95
Сообщений: n/a
#1

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

26.11.2013, 09:47. Просмотров 333. Ответов 2
Метки нет (Все метки)

В одномерном массиве,состоящем из n вещественных элементов, вычислить : 1.Номер минимального элемента массива
2.Сумма элементов массива, расположенных между первым и вторым отрицательными элементами. Преобразив массив таким образом, чтобы сначала располагались все элементы, модуль которых не превышает единицу, а потом - все остальное.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.11.2013, 09:47     Найти сумму элементов массива, расположенных между первым и вторым отрицательными элементами
Посмотрите здесь:

Найти сумму элементов массива, расположенных между первым и вторым отрицательными элементами - C++
Здравствуйте, помогите пожалуйста закончить эту программу Код C++ #include <iostream.h> #include <stdlib.h> #include <stdio.h> ...

Найти сумму элементов массива, расположенных между первым и вторым отрицательными элементами - C++
помогите пожалуйста: В однородном массиве, состоящем из N вещественных элементов, вычислить: • Номер минимального элемента массива; ...

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

Вычислить сумму элементов массива, расположенных между первым и вторым отрицательными элементами - C++
Помогите решить найти ошибку, код вроде как правильный, но все равно выдает ошибку, помогите найти ошибку, пожалуйста? Вот собственно...

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

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

Вычислить сумму элементов массива, расположенных между первым и вторым отрицательными элементами - C++
Хелп!!! Задание: Вычислить сумму элементов массива, расположенных между первым и вторым отрицательными элементами. На самом...

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

Вычислить сумму элементов массива, расположенных между первым и вторым отрицательными элементами - C++
Вот условие задания: В одномерном целочисленном массиве (размер массива (не больше 20) и значения его элементов вводить с клавиатуры)...

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

Найти сумму элементов между первым и вторым отрицательными элементами массива - C++
Прошу разъяснить как в массиве из 10 вещ. чисел найти сумму элементов между первым и вторым отрицательными элементами.

Найти сумму элементов массива, расположенных между первым и вторым негативными элементами - C++
1. Работа с одномерными массивами: В одномерном массиве, который состоит из п=10 элементов веществ, вычислить: 1) номер минимального...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Brain_Dead
9 / 8 / 2
Регистрация: 25.09.2013
Сообщений: 35
26.11.2013, 16:28     Найти сумму элементов массива, расположенных между первым и вторым отрицательными элементами #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Алена95 Посмотреть сообщение
Преобразив массив таким образом, чтобы сначала располагались все элементы, модуль которых не превышает единицу
Эти элементы расположены в произвольном порядке?

Цитата Сообщение от Алена95 Посмотреть сообщение
а потом - всё остальное
Тоже в произвольном порядке?

Добавлено через 1 час 5 минут
Одна из версий программы.

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
#include <stdio.h>
#include <conio.h>
#include <math.h>
 
int minElemNumber(double*, int); //функция нахождения минимального элемента
void Transform(double*, int); //функция-преобразователь
double sumOtr(double*, int); //функция подсчета суммы
void printArr(double*, int); //функция, которая печатает массив
 
int main()
{
    double arr[12] = {1.0, -3.3, 0.8, -0.9, 11.3, -4.2, 8.3, 0.2, -80.2, 21.8, 40.3, -0.5};
 
    int k = minElemNumber(arr, 12); //вычислить минимальный элемент
    printf("k = %i\n", k); //вывести его
 
    printf("\n");
    printArr(arr, 12); //вывести исходный массив для проверки
 
    Transform(arr, 12); //преобразовать массив, выведя все элементы, по модулю меньшие 1, на первое место
    printf("\n");
    printArr(arr, 12); //вывести преобразованный массив
 
    double x = sumOtr(arr, 12); //сумма чисел между первым и вторым отр. элементами
    printf("\n"); 
    printf("x = %5.2Lf\n", x); //выводим её
 
    printf("Press any key to exit\n"); 
    _getch(); 
    return 0;
}
 
int minElemNumber(double* arr, int n)
{
    int numberofMinElement = 0;
    double minElement = arr[0];
    for(int i = 0; i < n; i++)
    {
        if(minElement > arr[i])
        {
            minElement = arr[i];
            numberofMinElement = i;
        }
    }
 
    return numberofMinElement;
}
 
void Transform(double* arr, int n)
{
    double temp; //дополнительная переменная для замены мест элементов массива
    for(int i = 0; i < n; i++)
    {
        if(fabs(arr[i]) <= 1)
        {   
            //если модуль числа не больше 1, оно отправляется на 1-е место, а остальные
            //элементы с меньшими номерами сдвигаются вправо на 1 место;
            for(int j = i; j > 0; j--)
            {
                //элемент меняется местом с элементом слева от себя
                temp = arr[j];
                arr[j] = arr[j-1];
                arr[j-1] = temp;
            }
        }
    }
}
 
double sumOtr(double* arr, int n)
{
    double sum = 0;
    int indicator = 0;
    for(int i = 0; i < n; i++)
    {
        //если индикатор = 1, то это второй отр. элемент - выходим из цикла
        if(arr[i] < 0 && indicator == 1)
        {
            break;
        }
        //находим первый отрицательный элемент
        if(arr[i] < 0)
        {
            indicator = 1;
            continue;
        }
        //если индикатор = 0, то отрицательных элементов ещё не было
        if(indicator == 0)
        {
            continue;
        }
        //сумма вычисляется, если индикатор равен 1 и ещё не попалось 2-го отрицательного элемента
        sum += arr[i];
    }
    return sum;
}
 
 
void printArr(double* arr, int n)
{
    for(int i = 0; i < n; i++)
    {
        printf("arr[%i]\t = %8.2Lf\n", i, arr[i]);
    }
}
MicM
821 / 488 / 90
Регистрация: 29.12.2009
Сообщений: 1,097
Завершенные тесты: 1
26.11.2013, 17:48     Найти сумму элементов массива, расположенных между первым и вторым отрицательными элементами #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
#include <iostream>
#include <iomanip>
#include <cmath>
using std::cout;
using std::setw;
 
const int n = 10;
 
int main()
{
    float a[n]={2.5, -1.6, 4.5, 0.5, -0.4, 1.3, 0.1, -0.9, 5.6, -1.2};
    int min = 0;
    cout <<setw(6) <<a[0];
    for (int i=1; i<n; i++)
    {
        cout <<setw(6) <<a[i];
        if (a[i]<a[min])
            min = i;
    }
    int one = 0,two;
    float sum = 0;
    while (a[one]>=0)
        ++one;
    two=one+1;
    while (a[two]>=0)
        ++two;
    for (int i=one+1; i<=two-1; i++)
        sum+=a[i];
    cout <<"\nNumber min: " <<min <<'\n'
              <<"Summa: " <<sum <<'\n';
    float tmp = 0;
    int j = 0;
    for (int i=0; i<n; i++)
        if (fabs(a[i])<=1)
        {
            tmp = a[i];
            a[i] = a[j];
            a[j] = tmp;
            j = j + 1;
        }
    for (int i=0; i<n; i++)
        std::cout <<setw(6) <<a[i];
    return 0;
}
Yandex
Объявления
26.11.2013, 17:48     Найти сумму элементов массива, расположенных между первым и вторым отрицательными элементами
Ответ Создать тему
Опции темы

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