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

Одномерный массив из n элементов

05.01.2018, 18:40. Показов 27835. Ответов 3
Метки нет (Все метки)

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
23
24
25
#include <iostream>
 
 
int main()
{
    setlocale(0, "");
    int n, mas[100], sum = 0;
 
    std::cout << "Количество элементов массива- ";
    std::cin >> n;
    std::cout << "Введите элементы массива: ";
 
    for(int i = 0; i < n; i++)
    {
        std::cin >> mas[i];
    }
    for(int i = 0; i < n; i=i+2)
    {
        if ( mas[i] > 0 )
            sum += mas[i];
    }
     std::cout << "Сумма положительных элементов массива равна " << sum;
     system("pause >> null");
    return 0;
}
Б-
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
int main()
{
    const int N = 4;
    int a[N], iMin = 0, iMax = 0;
    for (int i=0; i < N; i++)
    {
        std::cin >> a[i];
        if (a[i] < a[iMin])
            iMin = i;
        if (a[i] > a[iMax])
            iMax = i;
    }
    std::cout << a[iMin] * a[iMax];
}
В-
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
#include <iostream>
#include <cstdlib>
#include <stdlib.h>
using namespace std;
const int n = 10;
 
 
int main()
{
    int mas[n], index_1_otr = n+1, index_last_pol = n+1, k;
    for(int i = 0; i < n; i++)
        mas[i] = rand()%(n+n) - n;
    for(int i = 0; i < n; i++)
        cout<<mas[i] << ' ';
    cout << endl;
    for(int i = 0; i < n; i++)
        if(mas[i]>0)
        {
            index_1_otr = i;
            break;
        }
    for(int i = 0; i < n; i++)
        if(mas[i]<0)
            index_last_pol = i;
    if(index_1_otr == n+1)
        cout<< "Положительный элемент" << endl;
    else if(index_last_pol == n+1)
        cout<< "Последний отрицательный" << endl;
    else{
         k = mas[index_last_pol];
         mas[index_last_pol] = mas[index_1_otr];
         mas[index_1_otr] = k;
    }
    for(int i = 0; i < n; i++)
        cout<<mas[i] << ' ';
    cout << endl;
    system("pause");
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.01.2018, 18:40
Ответы с готовыми решениями:

Сгенерировать одномерный массив A в диапазоне [-20; 20] и сформировать новый массив B из отрицательный элементов массива
Здравствуйте. Помогите, пожалуйста, дорешать задачу. Нужно сгенерировать одномерный массив A в...

Дан двумерный массив 3х3. Получить одномерный массив из из отрицательных элементов матрицы.
Пожалуйста, помогите решить простым методом задачку, просто не могу понять смысл ее выполнения....

Ввести одномерный массив из n элементов. Определить число различных элементов в нем
Возникла небольшая проблема. Нужно сделать элементарное задание, но чтобы было несколько функций...

Задан одномерный массив из 16 элементов .Сформировать двухмерный массив 4×4, используя функцию преобразования любого
Здравствуйте. Помогите написать программу: Задан одномерный массив из 16 элементов. Сформировать...

3
277 / 226 / 93
Регистрация: 27.06.2016
Сообщений: 639
05.01.2018, 19:05 2
billerafont, что именно вы не представляете? Как сделать это с одним массивом? Что тут сложного? Слепите код вместе, замените разные ссылки на массив и его размер одинаковыми, сделайте одно заполнение вместо нескольких. Будет громоздко, но задача будет выполнена. После этого, можете изучить функции и как передавать в них массивы, и декомпозировать программу на несколько функций.
1
299 / 208 / 174
Регистрация: 11.05.2016
Сообщений: 655
05.01.2018, 19:15 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
#include <iostream>
 
int foo_a(int *mas, int n);
int foo_b(int *mas, int n);
void foo_c(int *arr, int n);
 
 
int main()
{
    setlocale(0, "");
    int n, mas[100];
 
    std::cout << "Количество элементов массива- ";
    std::cin >> n;
    std::cout << "Введите элементы массива: ";
 
    for(int i = 0; i < n; i++)
    {
        std::cin >> mas[i];
    }
    
    std::cout << "Сумма положительных элементов массива равна " << foo_a(mas, n);
    std::cout << "\ntask b: " << foo_b(mas, n);
    foo_c(mas, n);
  
 
     system("pause");
    return 0;
}
 
int foo_a(int *mas, int n)
{
    int sum = 0;
    for(int i = 0; i < n; i=i+2)
    {
        if ( mas[i] > 0 )
            sum += mas[i];
    }
 
    return (sum);
}
 
int foo_b(int *a, int N)
{
    int iMin = 0, iMax = 0;
    for (int i=0; i < N; i++)
    {
        if (a[i] < a[iMin]) iMin = i;
        if (a[i] > a[iMax]) iMax = i;
    }
    return // a[iMin] * a[iMax]; произведение индексов максимального и минимального элементов:
        iMin*iMax;
}
 
void foo_c(int *arr, int n)
{
    int iPos= -1;
    int iNeg = -1;
    for(int i=0; i<n; i++)
    {   
        if(arr[i] > 0)
        {
            iPos = i;
            break;
        }
    }
 
    for(int i=n-1; i>=0; i--)
    {   
        if(arr[i] < 0)
        {
            iNeg = i;
            break;
        }
    }
 
    if(iPos<0 || iNeg <0)
    {
        std::cout << "no positive or negative numbers";
        return;
    } else {
        int temp = arr[iPos];
        arr[iPos] = arr[iNeg];
        arr[iNeg] = temp;
    }
 
}
1
0 / 0 / 0
Регистрация: 27.12.2015
Сообщений: 37
08.01.2018, 18:32  [ТС] 4
Добрый вечер. Да именно так, не представляю все что вы написали, но покапавшись понял примерно что к чему. Спасибо за совет.
0
08.01.2018, 18:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.01.2018, 18:32
Помогаю со студенческими работами здесь

Одномерный массив. Найти наименьшие среди элементов первого массива, которые не входят во второй массив.
Задано два массива. Найти наименьшие среди элементов первого массива, которые не входят во второй...

Сформировать одномерный массив из элементов той строки, сумма элементов которой минимальна
Задание: Дана матрица {Rij }, i и j - целые, не больше 15 и 18 соответственно. Сформировать...

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

Дан целочисленный одномерный массив А, состоящий из 14 элементов. вычислить и напечатать сумму парши элементов
дано целочисленный одномерный массив А, состоящий из 14 элементов. вычислить и напечатать сумму...


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

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