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

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

Войти
Регистрация
Восстановить пароль
 
123456кам
1 / 1 / 0
Регистрация: 11.11.2011
Сообщений: 49
#1

Массивы - C++

11.04.2012, 15:03. Просмотров 282. Ответов 3
Метки нет (Все метки)

В одномерном массиве, состоящем из п вещественных элементов, вычислить:
1) максимальный элемент массива;
2) сумму элементов массива, расположенных до последнего положительного эле-мента.
Сжать массив, удалив из него все элементы, модуль которых находится в интервале [а, b]. Освободившиеся в конце массива элементы заполнить нулями.

Первые 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
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
#include "stdafx.h"
#include <iostream.h>
#include <math.h>
 
void main(void)
{
    int const n = 5;
    int m[n];
    cout << "Vvedite massiv:" << endl;
    for(int i = 0; i<n; i++)
    {
        cout << "Vvedite element[" << i+1 << "]:" << endl;
        cin >> m[i];
    }
 
    int maxi;
    int max = m[0];
 
    for(i = 0; i < n; i++)
    {
        if(m[i] > max)
        {
            max = m[i];
            maxi = i;
        }
    }
 
    cout << "max el mas = " << max << endl;
    cout << "poz max el mas = " << maxi << endl;
                
 
                
int j = n-1;
for(int h=0;h<n;h++) 
{
    if(m[h]>=0)
    {
        j=h-1;
    }
}
 
float sum = 0;
for(int s = 0; s <= j; s++)
{
    sum += m[s];
                
}
 
cout << "sum elementov = " << sum <<endl;
 
 
int a = 2;
int b = 5;
 
 
    if(abs(m[i]) > a && abs(m[i]) < b)
    {
        ???;
    }
 
 
    for(int f = 0; f < n; f++)
    {
        cout << m[f] << endl;
    }
 
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.04.2012, 15:03     Массивы
Посмотрите здесь:

Упорядочить массивы по по убыванию, потом соединить массивы в один упорядоченный массив - C (СИ)
Начала писать, запуталась Даны два одномерных массива состоящие из 10 целых чисел. Упорядочить массивы по по убыванию, потом соединить...

Даны массивы A(8), F(8),Q(8). Сформировать массивы С(8), каждый элемент которого вычисляется по формуле - Pascal ABC
uses crt; type mas=array of integer; var A,F,Q,C:mas; i,s:integer; begin clrscr; writeln('Массив первый:'); for i:=1...

Даны массивы а и b. Получить новые массивы a и b, элементы которых вычисляются по правилу: ai=bi, bi= -ai - Pascal
Даны массивы а и b, состоящие из n-элементов каждый. Получить новые массивы a и b, элементы которых вычисляются по правилу: ai=bi, bi=...

Табулирование функции и поиск данных. Одномерные массивы. Двумерные массивы - C#
Вычислить сумму первых четырех отрицательных элементов. В соответствии с п. 5.16 правил &quot;Запрещено создавать темы с множеством...

Массивы. Циклические алгоритмы (Заполнить массивы случайными числами, лежащими в интервале 0 до 100) - C++
Доброго дня, уважаемые форумчане, помогите пожалуйста решить задание. Заполнить массивы случайными числами, лежащими в интервале 0 до...

Указатели и массивы. Индексация с помощью указателей. Передача массивов в функции. Динамические массивы (обработка матриц) - C++
Для каждого элемента , bij, i= 1,...,n , j=1,...,n определяется свой многоугольник местонахождением соответствующего элемента aij (см....

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kinkrol
1 / 1 / 0
Регистрация: 04.04.2012
Сообщений: 23
11.04.2012, 15:14     Массивы #2
Сделай новый динамический массив, в него забей все элементы не попадающие в диапазон [a,b], старый массив занули, и переси элементы нового в старый))
Schizorb
509 / 461 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
11.04.2012, 15:20     Массивы #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
#include <iostream>
#include <cmath>
 
int main()
{
    int const size = 5;
    int arr[size];
    
    // ввод массива
    for(int i = 0; i < size; i++)
    {
        std::cout << "Enter element[" << i + 1 << "]: ";
        std::cin >> arr[i];
    }
 
    // вывод старого массива
    std::cout << "\nSource array: ";
    for(int i = 0; i < size; i++)
    {
        std::cout << arr[i] << " ";
    }
 
    int a = 2, b = 5; // для примера
    
    // сжатие
    for(int i = 0; i < size; ++i)
    {
        if(std::abs(arr[i]) > a && std::abs(arr[i]) < b)
        {
            for(int j = i; j < size - 1; ++j) // перемещаем эл-ты в цикле
            {
                arr[j] = arr[j + 1];
            }
            arr[size - 1] = 0; // зануляем последний эл-т
            --i;
        }
    }
    
    // вывод нового массива
    std::cout << "\nResult array: ";
    for(int i = 0; i < size; i++)
    {
        std::cout << arr[i] << " ";
    }
 
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.04.2012, 15:35     Массивы
Еще ссылки по теме:

Файлы. Компоненты - массивы чисел. Переформировать файл, где сначала идут массивы с положительными макс. элементами - Turbo Pascal
Здравствуйте!! я пишу такую задачу: нужно написать две программы, одна из них создает файл, где компоненты - массивы вещ. чисел; ...

Попадание точки. Массивы чисел. Массивы записей. - C++
Всем привет. По языкам задали три контрольные на си. Я сам си не знаю, даже не представляю, поэтому очень нужна ваша помощь. ...

Многомерные массивы, как перебирать внутренние массивы - C++
Здравствуйте. Такой учебный код и плохо понимаю как перебираются внутренние массивы, может кто пояснит подоходчивее. Именно внутренний...


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

Или воспользуйтесь поиском по форуму:
Dekio
Фрилансер
Эксперт С++
5837 / 1218 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
11.04.2012, 15:35     Массивы #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <algorithm>
#include <numeric>
#include <iterator>
#include <vector>
#include <ctime>
 
int main()
{
    std::size_t a = 5, b = 10;
    std::mt19937 gen(std::time(0));
    std::uniform_int_distribution <> distr(-10, 20);
    std::vector <int> vec(20);
    std::generate(vec.begin(), vec.end(), [&gen, &distr] () -> int { return distr(gen); });
    std::copy(vec.begin(), vec.end(), std::ostream_iterator <int> (std::cout, " "));
    std::cout<<std::endl<<"Max element = "<<*std::max_element(vec.begin(), vec.end())<<std::endl;
    std::cout<<"Sum = "<<std::accumulate(vec.begin(), std::find_if(vec.rbegin(), vec.rend(), [] (int num) -> bool { return num > 0.0; }).base() - 1, 0)<<std::endl;
    std::fill(std::remove_if(vec.begin(), vec.end(), [&a, &b] (int num) -> bool { return num >= a && num <= b; }), vec.end(), 0);
    std::copy(vec.begin(), vec.end(), std::ostream_iterator <int> (std::cout, " ")); 
    return 0;
}
http://liveworkspace.org/code/9f6289...552372c73bfc6f
Yandex
Объявления
11.04.2012, 15:35     Массивы
Ответ Создать тему
Опции темы

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