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

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

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

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

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

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

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

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

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

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

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

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

2
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]);
    }
}
0
MicM
822 / 480 / 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;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.11.2013, 17:48
Привет! Вот еще темы с ответами:

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

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

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

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


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

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

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