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

Сумма одномерного масива. Что не так? - C++

Восстановить пароль Регистрация
 
Anti55
-67 / 2 / 0
Регистрация: 22.01.2013
Сообщений: 56
08.02.2013, 22:28     Сумма одномерного масива. Что не так? #1
Доброго времени суток. У меня не выходит сумма элементов массива, показывает нереально большую цифру. Что не так?
Код
#include <conio>
#include <iostream>
int main(){
int z,b,c;
const int N=3;
int a[N]={z,b,c};
 z=5;
 b=8;
 c=2;
int sum=0;
for(int i=0;i<3;i++)
sum=sum+a[i];
cout<<"sum--"<<sum<<endl;
getch();
return 0;
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.02.2013, 22:28     Сумма одномерного масива. Что не так?
Посмотрите здесь:

C++ Из двумерного массива сделать одномерный массив, так что бы в него вошла сумма элементов строк
C++ Сумма элементов. Что не так
Определить можно ли в двумерном массиве найти такой столбец, который разбивает массив на два так, что сумма элементов в первом больше, чем сумма элеме C++
C++ Сумма элементов произвольного одномерного массива
C++ Найти количество положительных элементов, что распологаются после минимального элемента числового масива
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Пёс
 Аватар для Пёс
228 / 76 / 4
Регистрация: 03.02.2013
Сообщений: 311
08.02.2013, 22:33     Сумма одномерного масива. Что не так? #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <conio>
#include <iostream>
int main()
{
    int z,b,c;
    const int N=3;
    int a[N]={z,b,c}; //z, b и c -  /*НЕ ИНИЦИАЛИЗИРОВАНЫ!*/
    z=5;b=8;c=2;
    int sum=0;
    for(int i=0;i<N;i++)
    sum=sum+a[i];
    cout<<"sum--"<<sum<<endl;
    getch();
    return 0;
}
Добавлено через 1 минуту
Правильно так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <conio>
#include <iostream>
int main()
{
    int z,b,c;
    const int N=3;
    z=5;b=8;c=2;
    int a[N]={z,b,c}; 
    int sum=0;
    for(int i=0;i<N;i++) // ДА, и вот сюда лучше N поставить.
    sum=sum+a[i];
    cout<<"sum--"<<sum<<endl;
    getch();
    return 0;
}
Anti55
-67 / 2 / 0
Регистрация: 22.01.2013
Сообщений: 56
08.02.2013, 22:35  [ТС]     Сумма одномерного масива. Что не так? #3
Будьте добры, как инициализировать?

Добавлено через 2 минуты
Спасибо большое.
Пёс
 Аватар для Пёс
228 / 76 / 4
Регистрация: 03.02.2013
Сообщений: 311
08.02.2013, 22:39     Сумма одномерного масива. Что не так? #4
Цитата Сообщение от Anti55 Посмотреть сообщение
Будьте добры, как инициализировать?
Инициализировать переменную - это значит присвоить ей какое - либо значение. Любую переменную надо инициализировать, прежде чем использовать её в каких либо выражениях.

Нельзя писать так:

C++
1
2
int a,b = 10, c = 15;
int h = a + b / c; // переменная a не инициализирована, её значение не установлено!
так тоже нельзя:

C++
1
2
int b;
b++;
Kgfq
74 / 37 / 2
Регистрация: 23.09.2012
Сообщений: 408
08.02.2013, 22:39     Сумма одномерного масива. Что не так? #5
Пёс, очень странно, что вы их не инициализировали, а присвоили.
Пёс
 Аватар для Пёс
228 / 76 / 4
Регистрация: 03.02.2013
Сообщений: 311
08.02.2013, 22:42     Сумма одномерного масива. Что не так? #6
Цитата Сообщение от Kgfq Посмотреть сообщение
Пёс, очень странно, что вы их не инициализировали, а присвоили.
не стал парить моск, просто перенёс три строки вверх.
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
08.02.2013, 22:51     Сумма одномерного масива. Что не так? #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
#include <algorithm>
#include <iterator>
#include <iostream>
#include <numeric>
#include <vector>
#include <random>
 
int main ()
{
   std::random_device rand;
   std::mt19937 gen(rand());
   std::uniform_int_distribution <> distr(0, 50);
   
   const int vecSize = 25;
   std::vector <int> vec (vecSize);
   std::cout << "Array: " << std::endl;
   std::generate(vec.begin(), vec.end(), [&gen, &distr] () -> int {
      return distr(gen);
   });
   std::copy(vec.begin(), vec.end(), std::ostream_iterator <int> (std::cout, " "));
   std::cout << "\nSum of elements: " << std::accumulate(vec.begin(), vec.end(), 0);
   
   return 0;
}
Добавлено через 2 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <cstdlib>
#include <ctime>
 
int main ()
{
   srand(time(0));
   const int size = 25;
   int array[size];
   
   int sum = 0;
   std::cout << "Array: " << std::endl;
   for (int i = 0; i < size; i++) {
      std::cout << (array[i] = rand() % 51) << " ";
      sum += array[i];
   }
   std::cout << "\nSum of elements: " << sum << std::endl;
   
   return 0;
}
Пёс
 Аватар для Пёс
228 / 76 / 4
Регистрация: 03.02.2013
Сообщений: 311
08.02.2013, 22:53     Сумма одномерного масива. Что не так? #8
Ev[G]eN, о ужас, вот это матан. Опишите, каким образом тут происходит генерация рандомных чисел? (подскажите хотя бы название метода)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.02.2013, 23:26     Сумма одномерного масива. Что не так?
Еще ссылки по теме:

Сделать так, что бы в общем балле отображался сумма, складываемых 4 предметов и деленный на тот же количество предметов C++
Сумма элементов одномерного и многомерного массивов C++
C++ Сумма элементов одномерного массива

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

Или воспользуйтесь поиском по форуму:
Dekio
Фрилансер
Эксперт C++
 Аватар для Dekio
5816 / 1214 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
08.02.2013, 23:26     Сумма одномерного масива. Что не так? #9
Как вариант

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <boost/preprocessor/seq/for_each.hpp>
#include <boost/preprocessor/tuple/enum.hpp>
#include <boost/preprocessor/tuple/to_seq.hpp>
 
#define getSum(Val, Data, Elem) Elem +
#define array (10, 28, 5, 17, 3, 4, 8, 2, 6, 1)
 
const int values[] = { BOOST_PP_TUPLE_ENUM(10, array) };
 
int main()
{
    std::cout << "Sum: " << BOOST_PP_SEQ_FOR_EACH(getSum, +, BOOST_PP_TUPLE_TO_SEQ(10, array)) + 0 << std::endl;
    return 0;
}
Yandex
Объявления
08.02.2013, 23:26     Сумма одномерного масива. Что не так?
Ответ Создать тему
Опции темы

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