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

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

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

Сумма элементов массива - C++

07.12.2013, 21:00. Просмотров 359. Ответов 2
Метки нет (Все метки)

Вычислить сумму элементов массива, расположенных между вторым минимальным и вторым максимальным элементами.
ПРототип пользовательской функции:
int sum2mxn(int*, const int, int&, int&);
параметры функции: массив, число элементов масива, (вторые) максимальный и минимальный элементы(ссылки).
Функция возвращает сумму элементов массива, расположенных между вторым минимальным и вторым максимальным элементами.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.12.2013, 21:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сумма элементов массива (C++):

Составить программу, в которой вычислить z=(s1+s2)/(k1*k2), где s1 и k1 - сумма и количество положительных элементов массива Х[N]; s1 u k2 - сумма - C++
Составить программу, в которой вычислить z=(s1+s2)/(k1*k2), где s1 и k1 - сумма и количество положительных элементов массива Х; s1 u k2 ...

Сумма элементов массива, у которых сумма индексов, на которых они находятся, - четное число. Проверить код - C++
нужно найти сумму элементов массива, у которых сумма индексов, на которых они находятся, четное число. вот что я написал, но код не...

C++5 числами из массива при выборе операции показывает результат. (сумма, произведение . элементов массива) - C++
#include <iostream> using namespace std; void main() { int m, i; char type; double res; cout << "Input 5 numbers" <<...

Произведение элементов массива с четными индексами, сумма элементов между первым и последним нулями - C++
Всем доброго времени суток! Помогите составить программу. Заранее благодарен! Вот условие: ...

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

сумма элементов массива - C++
#include "StdAfx.h" #include <iostream> #include <cstdlib> #include <ctime> int main() { srand(time(0)); const int n=12;...

2
zitxbit
88 / 740 / 75
Регистрация: 11.04.2012
Сообщений: 971
07.12.2013, 21:54 #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
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
#include <stdio.h>
#include <conio.h>
 
#define N 10
 
void find2min(int* pn, int& index)
{
    int B[N] = { 0 };
    int count = 2, n = 0;
    while (--count >= 0)
    {
        int min = 0;
        for (int i = 0; i < N; i++)
            if (pn[i] < pn[min])
            {
                bool found = false;
                for (int k = n-1; k >= 0 && !found; k--)
                    found = (B[k] == i) ? 1 : 0;
    
                if (found == false) 
                    min = i;
            }
 
        if (min >= 0) B[n++] = min;
    }
 
    if (index >= 0) index = B[1];
}
 
void find2max(int* pn, int& index)
{
    int B[N] = { 0 };
    int count = 2, n = 0;
    while (--count >= 0)
    {
        int max = 0;
        for (int i = 0; i < N; i++)
            if (pn[i] > pn[max] || max == 0)
            {
                bool found = false;
                for (int k = n-1; k >= 0 && !found; k--)
                    found = (B[k] == i) ? 1 : 0;
    
                if (found == false) 
                    max = i;
            }
 
        if (max >= 0) B[n++] = max;
    }
 
    if (index >= 0) index = B[1];
}
 
int sum2mxn(int* pn, int min_i, int max_i)
{
    int l = 0, h = 0;
    if (min_i > max_i)
    {
        l = max_i;
        h = min_i;
    }
 
    else if (min_i < max_i)
    {
        l = min_i;
        h = max_i;
    }
 
    else if (min_i == max_i)
        return pn[min_i];
 
    int sum = 0;
    for (int i = l+1; i < h; i++)
    {
        printf("%d ",pn[i]);
        sum+=pn[i];
    }
 
    printf("\n");
 
    return sum;
}
 
int main(int argc, char* argv[])
{
    int A[N] = { 7, 5, 8, 4, 9, 1, 3, 6, 4, 7 };
 
    int min_i = 0, max_i = 0;
    find2min(A, min_i);
    find2max(A, max_i);
 
    for (int i = 0; i < N; i++)
        printf("%d ",A[i]);
 
    printf("\n");
 
    printf("sum = %d\n", sum2mxn(A, min_i, max_i));
 
    _getch();
 
    return 0;
}
http://codepad.org/sHzeWQoH
1
Миниатюры
Сумма элементов массива  
Ярославна
0 / 0 / 0
Регистрация: 07.02.2012
Сообщений: 10
08.12.2013, 16:34  [ТС] #3
Это первый пункт этой задачи:
Используя генератор случайных чисел, заполнить массив из 20 элементов целочисленными значениями в диапазоне [11, 39], сумма цифр которых меньше 7.
Прототип пользовательской функции:
int genprint(int*, const int, const int, const int);
параметры функции: массив, число элементов массива, левая и правая границы интервала случайных чисел, верхняя граница суммы чисел. Функция возвращает общее число сгенерированных значений, которое потребовалось для заполнения всего массива числами.

*) вывод получаемых значений происходит в функции main(); значения элементов массива выводятся в две строки по 10 элементов в каждой в след виде:
- первые 10 элементов: <значения>
- вторые 10 элементов: <значения>
(выводимые значения аккуратно выравниваются; ширина поля вывода равняется 4).
- число сгенерированных значений = <значение>

Решение:

#include "stdafx.h"
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <iomanip>
using namespace std;

int genprint(int *, const int, const int, const int, const int);

int main()
{
setlocale(LC_ALL, "Russian");
srand(time(0));

const int arrSize = 20;
int massiv[arrSize];
int left = 11, right = 39, high = 7;
int chislo;
chislo = genprint(massiv, arrSize, left, right, high);

cout<<"Вывод нашего массива: \n";
cout<<"Первые десять значений: ";
for(int i=0; i<(arrSize/2); i++)
cout<<setw(4)<<massiv[i];
cout<<'\n';
cout<<"Вторые десять значений: ";
for(int i=arrSize/2; i<arrSize; i++)
cout<<setw(4)<<massiv[i];
cout<<'\n'<<"число сгенерированных значений = <"<<chislo<<"> \n";
system("pause");
return 0;
}

int genprint(int *arr, const int N, const int lb, const int rb, const int hb)
{
int a;
int i = 0, counter = 0;
while(i<N)
{
a=rand()%(rb-lb+1)+lb;
counter++;
if((a%10)+(a/10)<7)
{
arr[i] = a;
i++;
}
}
return counter;
}

Как преобразовать ваш код для этой задачи?

Добавлено через 1 минуту
Вычислить сумму элементов массива, расположенных между вторым минимальным и вторым максимальным элементами.
ПРототип пользовательской функции:
int sum2mxn(int*, const int, int&, int&);
параметры функции: массив, число элементов масива, (вторые) максимальный и минимальный элементы(ссылки).
Функция возвращает сумму элементов массива, расположенных между вторым минимальным и вторым максимальным элементами.

Добавлено через 26 минут
ЧТо означает: #define N 10 ?

НАс учили писать перед после включения директив using namespace std; Можно обходиться без этого?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.12.2013, 16:34
Привет! Вот еще темы с ответами:

Сумма элементов массива - C++
Подскажите, можно как то упростить следующую строку? STUD1.SES+STUD1.SES+STUD1.SES+STUD1.SES+STUD1.SES

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

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

Сумма элементов массива - C++
помогите плиз. Есть прога, пользователь вводит размер и элементы двух массивов после чего они сортируются и складываются. Результат должен...


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

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

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