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

Посчитать сумму всех элементов массива - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
sanchoflat
4 / 6 / 1
Регистрация: 05.11.2011
Сообщений: 97
29.05.2012, 16:23     Посчитать сумму всех элементов массива #1
Всем привет, начинаю изучать функции и собственно возникла проблема.
Есть задача - вбить порядок массива и сам массив вручную, а потом передать его в функцию и посчитать сумму всех элементов.
Подскажите, что не так, спасибо.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int sum(int arr[], int size)
{
    int result = 0;
    for (int i = 0; i< size; i++)
    result += arr[i];
    return result;
}
 
int main()
{
    int arr[10],n;
    cout<<"n:";
    cin>>n;
    for (int i=1; i<=n; i++)
    {
    cout<<"arr["<<i<<"]";
    cin>>arr[i];
    }
    int x = sum (arr,n);
    cout<<x;
    cin.get();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Lordif
 Аватар для Lordif
21 / 21 / 1
Регистрация: 18.04.2010
Сообщений: 87
29.05.2012, 16:32     Посчитать сумму всех элементов массива #2
Так ты выйдешь за пределы массива:
C++
1
2
3
4
5
 for (int i=1; i<=n; i++)
    {
    cout<<"arr["<<i<<"]";
    cin>>arr[i];
    }
Вот так:
C++
1
2
3
4
5
6
7
8
9
10
int* arr;
int n;
cout << "n: ";
cin >> n;
arr = new int[n];
for (int i=1; i<=n; i++)
    {
    cout<<"arr["<<i<<"]";
    cin>>arr[i];
    }
Добавлено через 2 минуты
У тебя переменная n - не кол-во ячеек массива, а просто какая то переменная.
Чтобы создать массив из n элементов надо использовать динамическое выделение памяти или vector.
sanchoflat
4 / 6 / 1
Регистрация: 05.11.2011
Сообщений: 97
29.05.2012, 16:38  [ТС]     Посчитать сумму всех элементов массива #3
если правильно все понял, то опять он запускает, но вместо суммы выдает рандомное число
Глупец
23 / 23 / 1
Регистрация: 17.05.2011
Сообщений: 141
29.05.2012, 16:39     Посчитать сумму всех элементов массива #4
Цитата Сообщение от Lordif Посмотреть сообщение
for (int i=1; i<=n; i++)
{
cout<<"arr["<<i<<"]";
cin>>arr[i];
}
вообще то вы оба за пределы вылезете
C++
1
2
3
4
5
for (int i=0; i<n; i++)
 {
 cout<<"arr["<<i+1<<"]"<<endl;
 cin>>arr[i];
 }
sanchoflat
4 / 6 / 1
Регистрация: 05.11.2011
Сообщений: 97
29.05.2012, 16:41  [ТС]     Посчитать сумму всех элементов массива #5
Глупец, так так пробовал в первую очередь, не помогло
Глупец
23 / 23 / 1
Регистрация: 17.05.2011
Сообщений: 141
29.05.2012, 17:05     Посчитать сумму всех элементов массива #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int sum(int arr[], int n)
{
     int result = 0;
     for (--n; n >= 0; n--)
     result += arr[n];
     return result;
}
int main()
{
     int* arr,n;
     cout<<"n:";
     cin>>n;
     arr = new int[n];
     for (int i=0; i < n; i++)
     {
         cout<<"arr["<<i + 1<<"]";
         cin>>arr[i];
     }
     cout<< sum (arr,n);
system("pause");
}
sanchoflat
4 / 6 / 1
Регистрация: 05.11.2011
Сообщений: 97
29.05.2012, 19:24  [ТС]     Посчитать сумму всех элементов массива #7
а еще такой вопрос. к примеру у меня есть функция по созданию массива. я создаю еще одну функцию, в который трижды вызываю функию по созданию массива и потом мне нужно посчитать, к примеру, перемножение i элементов их каждого массива. ( в идеале конечно все это в отдельной функции сделать, но пока можно и в этой) как мне разделять все эти массивы, что это элементы массива А,Б,С?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int glav ( int arr[], int n)
{
    cout<<endl;
   vvodmassiva( arr, n, 2);
   for (int i = 1; i<=n; i++)
 
   if (arr[i]<0) ;
 
   else
 
   for (int i = 1; i<=n; i++)
   {
       if (arr[i]<0) goto exit;
   }
 
   vvodmassiva(arr,n,3);
   for ( i = 1; i<=n; i++)
   {
       тут я должен уже сделать операции с этими массивами что ввел
   }
как это реализовать?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.05.2012, 21:44     Посчитать сумму всех элементов массива
Еще ссылки по теме:

C++ Посчитать сумму элементов на диагоналях массива X[N][N] C++
C++ Посчитать сумму элементов массива

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

Или воспользуйтесь поиском по форуму:
Глупец
23 / 23 / 1
Регистрация: 17.05.2011
Сообщений: 141
29.05.2012, 21:44     Посчитать сумму всех элементов массива #8
так ну, начнем с того, что сделам функцию для "создания массива"(видимо это выделение памяти и его заполнение)
делается просто.
тебе не нужно ни чего передавать в нее.
посмотри пост №6...
вот она твоя функция, результатом ее выполнения будет заполненый массив, который и нужно вернуть туда, где она была вызвана.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int* new_mass()
{
    int* arr,n;
    cout<<"n:";
    cin>>n;
    arr = new int[n];
    for (int i=0; i < n; i++)
    {
        cout<<"arr["<<i + 1<<"]";
        cin>>arr[i];
    }
    return arr;
}
тебе надо создать 3 массива (можно и больше - делаешь цыкл...чуть сложнее если не знаешь что такое двумерный массив)...берешь и делаешь...
C++
1
2
3
4
5
int *arr1 = new_mass(), *arr2 = new_mass(), *arr3 = new_mass();
 
//второй вариант(пусть пременную int size - передали)
int** 2d_arr = new int*[size];
for(int i = 0; i < size; i++)2d_arr[i] = new_mass();//теперь у тебя size массивов
Yandex
Объявления
29.05.2012, 21:44     Посчитать сумму всех элементов массива
Ответ Создать тему
Опции темы

Текущее время: 13:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru