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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.83
Jalced
0 / 0 / 0
Регистрация: 12.10.2011
Сообщений: 50
#1

Функции в с++. Найти сумму элементов массива D, а также суммы квадратов и кубов элементов массива D. - C++

19.02.2012, 08:07. Просмотров 2444. Ответов 14
Метки нет (Все метки)

Запутался уже -_- Куда че пихать не могу понять...
Дан произвольный массив D размера k. Найти сумму элементов массива D, а также суммы квадратов и кубов элементов массива D. Исходные данные взять самостоятельно
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
#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<iostream>
#include<iomanip>
using namespace std;
int arr[10][10],
 i=0,j=0,s1=0,s2=0,s3=0,n=0,m=0;
int sumel (int s1) {
 
    return 
        for ( i=0;i<n;++i) 
            for ( j=0;j<n;++j) 
                s1=s1+arr[i][j];
}
int sumkv (int s2)
{
  return 
      for ( i=0;i<n;++i) 
            for ( j=0;j<n;++j)  
                s2=s2+arr[i][j]*arr[i][j];
}
int sumkub (int s3)
{
    return 
        for ( i=0;i<n;++i) 
            for ( j=0;j<n;++j) 
                s3=s3+arr[i][j]*arr[i][j]*arr[i][j];
}
 
int main()
        
{
 
        setlocale (LC_ALL, ".ACP");
cout<<"Введите размерность массива"<<endl<<"Размерность - ";
cin>>n;
for ( i=0;i<n;++i) {
    for ( j=0;j<n;++j) {
        cout<<"Введите эллемент матрицы:"<<endl;
            cin>>arr[i][j];
}
}
 
cout << endl << "Полученная матрица" << endl;
    for ( i = 0; i < n; ++i) {
        for ( j = 0; j < n; ++j) {
            cout << arr[i][j] << " ";
 }
                cout << endl;
 }
cout<<"Сумма элементов массива = "<<sumel(s1)<<endl;
cout<<"Сумма квадратов массива = "<<sumkv(s2)<<endl;
cout<<"Сумма кубов массива = "<<sumkub(s3)<<endl; 
system ("pause");
return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.02.2012, 08:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Функции в с++. Найти сумму элементов массива D, а также суммы квадратов и кубов элементов массива D. (C++):

Найти сумму тех элементов массива, цифровая запись которых дает четную сумму цифр, а также найти максимальный элемент массива - C++
Вот, что есть.Помогите довести до ума! #include &lt;cstdlib&gt; #include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; void...

Найти сумму элементов массива до первого элемента равного 0, и сумму оставшихся элементов (функции) - C++
Дан массив а1, а2, …, а12. Вычислить сумму элементов этого массива до первого элемента, равного 0, и сумму оставшихся элементов.

Найти индексы минимума и максимума, а также сумму элементов массива между ними - C++
В одномерном массиве, вводимом с клавиатуры и состоящем из 10 вещественных элементов, вычислить: 1) индексы элементов массива с...

Найти сумму квадратов заданных элементов вещественного массива - C++
Дан линейный вещественный массив a. Найти : {a}_{1}^{2}+{a}_{4}^{2}+{a}_{9}^{2}+...+{a}_{k^2}^{2}...;

Найти сумму квадратов последних шести элементов массива - C++
Хочу чтобы массив заполнялся случайными числами (это не обязательно). #include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; ...

Подсчитать сумму квадратов четных и сумму квадратов нечетных элементов массива - C++
Сформировать в программе массив из целых чисел от 2 до N. Подсчитать сумму квадpатов четных и сумму квадратов нечетных чисел.

14
dimcoder
Полярный
466 / 439 / 68
Регистрация: 11.09.2011
Сообщений: 1,137
20.02.2012, 10:51 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    const int size = 10;
    int D[size];
    for (int i = 0; i < size; i++)
       cin >> D[i];
    int sum1 = 0, sum2 = 0, sum3 = 0;
    for (int i = 0; i < size; i++)
    {
        sum1 += D[i];
        sum2 += D[i] * D[i];
        sum3 += D[i] * D[i] * D[i];
    }
    cout << sum1 << endl << sum2 << endl << sum3 << endl;
    system("PAUSE > NULL");
    return EXIT_SUCCESS;
}
Цитата Сообщение от Jalced Посмотреть сообщение
Дан произвольный массив D размера k. Найти сумму элементов массива D, а также суммы квадратов и кубов элементов массива D.
И где здесь написано про
Цитата Сообщение от Jalced Посмотреть сообщение
Полученная матрица
?
0
Jalced
0 / 0 / 0
Регистрация: 12.10.2011
Сообщений: 50
20.02.2012, 11:51  [ТС] #3
Спасибо конечно, но что то я совсем не могу понять, где там решение через функцию (подпрограмму пользователя)?
Это обычный способ решения, так я умею) По поводу полученной матрицы, надо же глянуть, получился нормальный ответ, или нет, т.к. если массив будет 5*5 к примеру, то представить в голове и просчитать будет проблемно
0
dimcoder
Полярный
466 / 439 / 68
Регистрация: 11.09.2011
Сообщений: 1,137
20.02.2012, 12:20 #4
Цитата Сообщение от Jalced Посмотреть сообщение
я совсем не могу понять, где там решение через функцию (подпрограмму пользователя)?
А я не могу понять, где это у вас в задании написано. Задание точно писать надо, откуда мы знаем что там должно быть. Код - не совсем аргумент (но конечно полезен), задание гораздо важнее.
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
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int func1 (int *a, int size)
{
    int sum1 = 0;
    for (int i = 0; i < size; i++)
        sum1 += a[i];
    return sum1;
}
 
int func2 (int *a, int size)
{
    int sum1 = 0;
    for (int i = 0; i < size; i++)
        sum1 += a[i] * a[i];
    return sum1;
}
 
int func3 (int *a, int size)
{
    int sum1 = 0;
    for (int i = 0; i < size; i++)
        sum1 += a[i] * a[i] * a[i];
    return sum1;
}
 
int main(int argc, char *argv[])
{
    const int size = 10;
    int D[size];
    for (int i = 0; i < size; i++)
       cin >> D[i];
    cout << func1(D, size) << endl << func2(D, size) << endl << func3(D, size) << endl;
    system("PAUSE > NULL");
    return EXIT_SUCCESS;
}
1
WebMax 2.0
--\.founder./--
560 / 560 / 206
Регистрация: 20.10.2011
Сообщений: 867
20.02.2012, 12:22 #5
Jalced, возьми код dimcoder, вырежи цикл нахождения сумм и создай функцию , передай туда массив, верни полученные значения , вроде ничего сложного . Компилятора под рукой нет !
1
Jalced
0 / 0 / 0
Регистрация: 12.10.2011
Сообщений: 50
20.02.2012, 13:02  [ТС] #6
dimcoder, не ну я в названии темы написал, думал достаточно) Спасибо большое

WebMax 2.0, в том то и дело, как все это примерно выглядет я представлял, а как на языке все это записать.. Плохо, когда темы дают на самоизучение
0
rinat_w
89 / 85 / 4
Регистрация: 13.11.2011
Сообщений: 192
Завершенные тесты: 1
20.02.2012, 18:19 #7
во более изящный код без использования функций:
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
#include<iostream>
using namespace std;
int main(){
    int k,sum1=0,sum2=0,sum3=0;
    cin>>k;
    int D[k];
    for (int i=0; i<k; i++){
        cin>>D[i];
        sum1=sum1+D[i];
        sum2=sum2+D[i]*D[i];
        sum3=sum3+D[i]*D[i]*D[i];
        }
    cout<<"First degree sum: ";
    for (int i=0; i<k; i++){
        cout<<D[i];
        if (i<k-1) cout<<"+";
        else cout<<"="<<sum1;
        }
    cout<<"\nSecond degree sum: ";
    for (int i=0; i<k; i++){
        cout<<D[i]<<"^2";
        if (i<k-1) cout<<"+";
        else cout<<"="<<sum2;
        }
    cout<<"\nThird degree sum: ";
    for (int i=0; i<k; i++){
        cout<<D[i]<<"^3";
        if (i<k-1) cout<<"+";
        else cout<<"="<<sum3;
        }
    return 0;
}
0
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
20.02.2012, 18:38 #8
Цитата Сообщение от rinat_w Посмотреть сообщение
во более изящный код без использования функций:
Цитата Сообщение от rinat_w Посмотреть сообщение
cin>>k;
int D[k];
По фигу на переносимость и работоспособность. Главное - "изящность".
1
rinat_w
89 / 85 / 4
Регистрация: 13.11.2011
Сообщений: 192
Завершенные тесты: 1
21.02.2012, 16:02 #9
Цитата Сообщение от soon Посмотреть сообщение
По фигу на переносимость и работоспособность. Главное - "изящность".
Он же в задании написал "Дан произвольный массив D размера k." А так у меня все работоспособно и с оформлением
0
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
21.02.2012, 16:18 #10
Цитата Сообщение от rinat_w Посмотреть сообщение
Он же в задании написал "Дан произвольный массив D размера k." А так у меня все работоспособно и с оформлением
Неа. Выбивает сегфолт при вполне рабочем тесте - 11111111.
Пруф
Bash
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
soon@desktop:~/Src/C++/main$ cat main.cpp && g++ main.cpp -o main && ./main
#include<iostream>
using namespace std;
int main(){
    int k,sum1=0,sum2=0,sum3=0;
    cin>>k;
    int D[k];
    //int* D = new int [k];
    for (int i=0; i<k; i++){
        cin>>D[i];
        sum1=sum1+D[i];
        sum2=sum2+D[i]*D[i];
        sum3=sum3+D[i]*D[i]*D[i];
        }
    cout<<"First degree sum: ";
    for (int i=0; i<k; i++){
        cout<<D[i];
        if (i<k-1) cout<<"+";
        else cout<<"="<<sum1;
        }
    cout<<"\nSecond degree sum: ";
    for (int i=0; i<k; i++){
        cout<<D[i]<<"^2";
        if (i<k-1) cout<<"+";
        else cout<<"="<<sum2;
        }
    cout<<"\nThird degree sum: ";
    for (int i=0; i<k; i++){
        cout<<D[i]<<"^3";
        if (i<k-1) cout<<"+";
        else cout<<"="<<sum3;
        }
    //delete[] D;
    return 0;
}
11111111
Segmentation fault
soon@desktop:~/Src/C++/main$ cat main.cpp && g++ main.cpp -o main && ./main
#include<iostream>
using namespace std;
int main(){
    int k,sum1=0,sum2=0,sum3=0;
    cin>>k;
    //int D[k];
    int* D = new int [k];
    for (int i=0; i<k; i++){
        cin>>D[i];
        sum1=sum1+D[i];
        sum2=sum2+D[i]*D[i];
        sum3=sum3+D[i]*D[i]*D[i];
        }
    cout<<"First degree sum: ";
    for (int i=0; i<k; i++){
        cout<<D[i];
        if (i<k-1) cout<<"+";
        else cout<<"="<<sum1;
        }
    cout<<"\nSecond degree sum: ";
    for (int i=0; i<k; i++){
        cout<<D[i]<<"^2";
        if (i<k-1) cout<<"+";
        else cout<<"="<<sum2;
        }
    cout<<"\nThird degree sum: ";
    for (int i=0; i<k; i++){
        cout<<D[i]<<"^3";
        if (i<k-1) cout<<"+";
        else cout<<"="<<sum3;
        }
    delete[] D;
    return 0;
}
11111111    
1
1
1
1
1
1
1
^C
soon@desktop:~/Src/C++/main$
0
rinat_w
89 / 85 / 4
Регистрация: 13.11.2011
Сообщений: 192
Завершенные тесты: 1
24.02.2012, 18:10 #11
Цитата Сообщение от soon Посмотреть сообщение
Неа. Выбивает сегфолт при вполне рабочем тесте - 11111111.
Не знаю как у тебя, но у меня с DevC++ все работает нормально а ты каким IDE пользуешься?
0
soon
24.02.2012, 19:43
  #12

Не по теме:

rinat_w, Vim.
IDE роли не играет. В C99 возможно использование VLA. А в С++ нет. Поэтому там нужно использовать либо статические, либо динамические(как я показал в посте #10, второй вариант), либо использовать контейнеры.
Все, не флудим, если что - в ЛС

0
Jalced
0 / 0 / 0
Регистрация: 12.10.2011
Сообщений: 50
01.03.2012, 16:07  [ТС] #13
Хелп) Что значит int *a, что дает эта звездочка?
0
dimcoder
Полярный
466 / 439 / 68
Регистрация: 11.09.2011
Сообщений: 1,137
01.03.2012, 18:56 #14
Цитата Сообщение от Jalced Посмотреть сообщение
int *a
Это указатель. Читай про указатели.
0
Jalced
0 / 0 / 0
Регистрация: 12.10.2011
Сообщений: 50
02.03.2012, 04:51  [ТС] #15
Цитата Сообщение от dimcoder Посмотреть сообщение
Это указатель. Читай про указатели.
Тоесть в моем случае, получается это указатель на обьект типа int ? А что он делает, я не могу понять) В инете что то про адресы написано, но чето как не очень доступно)
0
02.03.2012, 04:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.03.2012, 04:51
Привет! Вот еще темы с ответами:

Вычислите сумму квадратов всех элементов заданного массива A[N], за исключением элементов, кратных пяти. - C++
Вычислите сумму квадратов всех элементов заданного массива A, за исключением элементов, кратных пяти.

Вычислить сумму квадратов всех элементов заданного массива A(N), за исключением элементов, кратных пяти. - C++
Вычислить сумму квадратов всех элементов заданного массива A(N), за исключением элементов, кратных пяти.

Вычислить сумму кубов отрицательных элементов массива у - C++
Элементы вещественного одномерного динамического массива х размером n &gt; 20 сгенерированы датчиком псевдослучайных чисел в диапазоне ....

Вычислить сумму кубов всех положительных элементов массива - C++
Господа программисты: есть программа, которая вычисляет сумму кубов всех положительных членов массива: #include &lt;cstdlib&gt; #include...


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

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

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