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

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

09.10.2016, 15:47. Просмотров 320. Ответов 3
Метки нет (Все метки)

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

В одномерном массиве заменить отрицательные элементы на сумму положительных элементов
Я написала программу, скомпилировала, показало Done.. Но когда начинаю вводить...

Заменить все отрицательные элементы массива их квадратами
В одномерном массиве состоящий из N действительных элементов, 3 заменить все...

Заменить все отрицательные элементы массива их квадратами
Нужна помощь с задачей. Не пишу на c++, потому не знаю как это написать. 2)...

Функция: все отрицательные элементы массива заменить их квадратами и отсортировать по убыванию
все отрицательные элементы заменить их квадратами и сортировать по убиванию...

Найти сумму положительных элементов массива, расположенных до максимального элемента
Исправте ошибку, не понимаю в чем дело:-| В одномерном целочисленном массиве...

3
Croessmah
++Ͻ
14611 / 8365 / 1576
Регистрация: 27.09.2012
Сообщений: 20,561
Записей в блоге: 2
Завершенные тесты: 1
09.10.2016, 16:07 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
//g++  4.9.3
 
#include <iostream>
 
 
int main()
{    
    int arr[] = {6, 8, -4, 3, 9, 4, -5, 9, 5, 7};
    const std::size_t size = sizeof(arr)/sizeof(*arr);
    int gSum = 0;
    int max = arr[0];
    int lSum = max;
    for (std::size_t i = 1 ; i < size; ++i) {
        if( arr[i] > max ) { //До первого максимального. (arr[i] >= max) - до последнего максимального.
            gSum += lSum;
            lSum = max = arr[i];
        } else {
            lSum += arr[i];
        }
        if ( arr[i] < 0 ) {
            arr[i] *= arr[i];
        }
    }
    std::cout << "Sum: " << gSum << "\nResult: ";
    for (std::size_t i = 0; i < size; ++i) {
        std::cout << arr[i] << "; ";
    }
}
http://rextester.com/QOT4829

P.S. Только для положительных сделайте сами.
0
FURIAAA
0 / 0 / 0
Регистрация: 04.06.2016
Сообщений: 5
09.10.2016, 16:12 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
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
#include <stdio.h> 
#include <conio.h> 
#include <windows.h> 
#include <cstdio>
#include <iostream>
#include <cstdio>
 
using namespace std;
 
void ReadMas(float *mas, int n) //считывание и вывод массива
{
    for (int i(0); i < n; i++)     //считывание массива
        scanf("%f", &mas[i]);
 
 
    printf("***  Массив Mas[%d]  ***\n", n); //вывод на экран
    for (int i(0); i < n; i++)
        printf("%5.1f ", mas[i]);
    printf("\n\n");
    return;
}
 
float Search(float *mas, int n)
{
    float sum = 0;
    float max = mas[0];
    int index = 0;
 
    for (int i(0); i < n; i++) //ищем максимальный элемент массива
        if (mas[i] >= max)
        {
            max = mas[i];
            index = i;
        }
 
    for (int j(0); j < index; j++) //ищем сумму положительных элементов до максимального элемента
        if (mas[j] > 0)
            sum += mas[j];
 
    return sum;
}
 
void Composition(float *mas, int n) //решение задачи
{
    for (int i(0); i < n; i++)
        if (mas[i] < 0)
        {
            mas[i] *= mas[i];
        }
}
 
 
 
//---------------------------------------------------------------------------
void main()
{
    setlocale(LC_ALL, "Russian");
    
    printf("\t******  Задача  *****\n\n");
 
    //------------------------объявление массива------------------------//
    int n;
    printf("Введите размерность массива -> ");
    scanf("%d", &n); //считываем размерность массива
 
    float *mas = new float[n];
 
    printf("Введите массив: ");
    ReadMas(mas, n);
 
    //-----------------------решение------------------------------//
 
    float ans1;
 
    ans1 = Search(mas, n);
 
    printf("Сумма положительных элементов массива Answer1 = %5.1f \n\n", ans1);
 
    float ans2;
 
    Composition(mas, n);
 
    printf("Все отрицательные элементы массива заменены их квадратами\n");
 
    for (int i(0); i < n; i++)
        printf("%5.1f ", mas[i]);
    printf("\n\n");
 
 
    //-----------------------освобождение памяти------------------------------//
 
    delete[] mas;
 
    printf("Press any key to continue\n\n");
 
    getch();
    return;
}
P.S. вещественные числа нужно вводить через запятую (5,8 и тд).
0
Dastan4ik
62 / 62 / 55
Регистрация: 18.10.2014
Сообщений: 190
Завершенные тесты: 2
09.10.2016, 16:12 4
C++
1
2
3
4
5
6
7
8
9
10
11
 for (std::size_t i = 1 ; i < size; ++i) {
        if( arr[i] > max ) { //До первого максимального. (arr[i] >= max) - до последнего максимального.
            gSum += lSum;
            lSum = max = arr[i];
        } else {
            lSum += arr[i];
        }
        if ( arr[i] < 0 ) { //А как же 1 элемент массива?Вдруг он меньше 0 цикл же от 1 начинается
            arr[i] *= arr[i];
        }
    }
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.10.2016, 16:12

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

Заменить все отрицательные элементы массива их квадратами и отсортировать все элементы по возрастанию
Помогите пожалуйста заменить все отрицательные элементы массива их квадратами...

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


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

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

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