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

Функция: определение суммы элементов заданной части массива

28.04.2016, 22:15. Просмотров 453. Ответов 5
Метки нет (Все метки)

Привет! Условие задачи:

Дан числовой массив X[12].

Определить:

http://www.cyberforum.ru/cgi-bin/latex.cgi?\sum_{i=0}^{6}X[i] -\sum_{i=7}^{11}X[i]

Описать в виде отдельной функции определение суммы элементов заданной части массива.

Теоретическое решение:

Уменьшаемое - это сумма первых 7 чисел массива:

http://www.cyberforum.ru/cgi-bin/latex.cgi?\sum_{i=0}^{6}X[i] = x[0] + x[1] + x[2] + x[3] + x[4] + x[5] + x[6]

Вычитаемое - следующие 5 чисел:

http://www.cyberforum.ru/cgi-bin/latex.cgi?\sum_{i=7}^{11}X[i] = x[7] + x[8] + x[9] + x[10] + x[11]


По условию задачи у меня только один массив! Что делать?

1) Прошу ввести 12 любых чисел -> пишу в массив X[12]
2) Беру из массива X[12] первые 7 - суммирую -> пишу в переменную 1;
3) Беру из массива X[12] след 5 - суммирую -> пишу в переменную 2;
4) Вычисляю разность уменьшаемого 1 и вычитаемого 2 -> вывожу.

То есть мне для шагов 2 и 3 (в отдельной функции по условию задачи) писать разные циклы for ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.04.2016, 22:15
Ответы с готовыми решениями:

Описать в виде отдельной функции определение минимального элемента в заданной части массива
Ребята выручайте! 4.Дан числовой массив X. Определить min (X, X, … , X)...

Определение количества локальных минимумов в заданной матрице. Нахождение суммы модулей элементов
Здравствуйте! Прошу помощи в лабораторной работе. Задание: 1. ...

Определение суммы элементов массива, используя функцию
С помощью функции random(n) сгенерировать 3 массива чисел от 0 до 50 и...

Вычисление суммы и определение номеров положительных элементов массива
Задан массив целых чисел из 10 элементов.Программа вычисляет сумму положит....

Составить функцию по составлению дробной части числа суммы элементов массива
Класс DoubleArray. Тип элементов массива – double. Функция (fract) – ...

5
Daheimm
2 / 2 / 1
Регистрация: 30.11.2015
Сообщений: 60
28.04.2016, 22:33 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
#include<iostream>
#include<ctime>
#define value 12
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
    srand(time(NULL));
 
    int ar[value],summa7,summa12,anweser;
    for (int i = 0;i < value;i++)
    {
        ar[i] = rand() % 12;
        cout << ar[i] << " ";
        if (i < 7)
            summa7 =+ ar[i];
        else
            summa12 =+ ar[i];
    }
 
    anweser = summa7 - summa12;
    cout << endl << "Разница = " << anweser << endl;
    return 0;
}
1
Al312
1 / 1 / 0
Регистрация: 01.01.2013
Сообщений: 13
29.04.2016, 00:34  [ТС] 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
#include <stdio.h>
#define Value 12 /*размер массива*/
 
void SumElem (float a[], int j, int *s0ch6, int *s7ch11)
{
    int i;
 
    for (i=0; i<j; i++)
    {
        if (a[i] < 7) 
            (*s0ch6) += a[i];
        else
            (*s7ch11) += a[i];
    }   
    
}
 
main()
{
    float x[Value]; /*массив*/
    int s0ch6,  /*сумма чисел первых 7 элементов*/
        s7ch11,  /*сумма чисел оставшихся 5*/
        answer,
        i; /*индекс элемента массива*/
 
    printf("Введите числа\n");
 
    for (i = 0; i < 12; i++) scanf("%d", &x[i]);    
    
    SumElem(x, 12, &s0ch6, &s7ch11); /*вызов функции*/
    
    answer = s0ch6 - s7ch11; /*разность сумм по задаче*/
    
    printf("\nСумма 0-6: %d", s0ch6);
    printf("\nСумма 7-11: %d", s7ch11);
    printf("\nРазность = %d", answer);
    
}
Результат выдает:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Введите числа
1
2
3
4
5
6
7
8
9
10
11
12
 
Сумма 0-6: 0
Сумма 7-11: 4271360
Разность = -4271360
--------------------------------
Process exited with return value 0
Press any key to continue . . .
0
dcshowcousa
26 / 18 / 97
Регистрация: 22.10.2015
Сообщений: 303
29.04.2016, 06:45 4
Al312,
C++
1
2
3
4
5
6
7
8
9
10
float SumElem (float a[], int j)
{
    float s=0;
    for (int i=0; i<j; i++)
        if (i < 7) 
            s += a[i];
        else
            s -= a[i];
    return s;
}
0
Al312
1 / 1 / 0
Регистрация: 01.01.2013
Сообщений: 13
29.04.2016, 13:53  [ТС] 5
здесь s - не должна быть одной переменной, иначе как потом ими манипулировать?

Добавлено через 1 час 57 минут
Хотя мне уже два раза написали, я почему-то старательно пыталась писать условие с a[i], спасибо!
Надо быть внимательнее

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    for (i=0; i<N; i++) /*перебор всех элементов массива*/
    {
        if (i < 7) 
            sum1 += x[i];
        else 
            sum2 += x[i];
        
        printf("\nx[%d] = %d\n", i, x[i]);
        printf("== sum1=> %d\n", sum1);
        printf("== sum2=> %d\n", sum2);
                
    }
    
    answer = sum1 - sum2;
    
    printf("\nОтвет = %d", answer);
Попробую теперь вынести в отдельную функцию.

Добавлено через 5 минут
Способ dcshowcousa считать сразу разницу - классный! Только судя по условию задачи - Описать в виде отдельной функции определение суммы элементов заданной части массива., все же придется вынести высчитывание разницы в main, а суммирование в SumElem.
0
Байт
Эксперт C
18318 / 12029 / 2506
Регистрация: 24.12.2010
Сообщений: 24,293
29.04.2016, 14:02 6
C++
1
2
3
4
5
6
7
8
9
10
11
12
double SumPart( double *A, int b, int e)
{   double s = 0;
   for(int i=b; i < e; i++) s += A[i];
   return s;
}
main()
{
 ...
 sum1 = SumPart(A, 0, 7);
 sum2 = SumPart(A, 7, 12);
 ...
}
1
29.04.2016, 14:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.04.2016, 14:02

Определение максимальной и минимальной суммы двух соседних элементов массива
дан массив целых чисел написать программу для определения максимальной и...

Функция: подсчет числа отрицательных элементов массива, и суммы положительных элементов матрицы
написать функцию подсчета отрицательных элементов одномерного массива А(6) и...

Получение заранее заданной суммы из элементов массива
Всем привет. Столкнулся с такой проблемой: необходимо из заданного...


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

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

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