Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.01.2012, 17:30   #1
keksik
Пользователь
 
Регистрация: 08.02.2011
Сообщений: 24
По умолчанию Ошибки

С++
Задача.
Вводится последовательность из N целых чисел. Найти среднее арифметическое его цифр (функцией оформить определения среднего арифметического цифр числа).

Код:
#include <iostream>
#include <vector>
#include <algorithm>
 
double arithmetic_mean(long num) 
{
   int total = 0;
   int cnt = 0;
   do
   {
      total += num % 10;
      ++cnt;
   }
   while ( num /= 10 );
   return total / static_cast<double> (cnt);
}     
 
int main()
{
   std::vector<int> v = {52, 23, 33};
   double total = 0.0;
   std::for_each(v.begin(), v.end(), [&] ( int val ) { total += arithmetic_mean(val); });  
   std::cout << total / v.size() << std::endl;
   return 0;
}
Выдает ошибки:
error C2552: v: инициализация не агрегированных данных с помощью списка инициализации не допускается

IntelliSense: инициализация объектов типа "std::vector<int, std::allocator<int>>" с помощью выражения {...} не допускается

Помогите решить...
keksik вне форума Ответить с цитированием
Старый 22.01.2012, 17:39   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

о С++-11 мечтаем?.
пока ручками вектор заполнять придеться, с помощью push_back.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 22.01.2012, 17:54   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
   int a[3] = {52, 23, 33};
   std::vector<int> v;for(int i=0;i<3;v.push_back(a[i++]));
А после и мечтать не грех
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.01.2012, 18:44   #4
keksik
Пользователь
 
Регистрация: 08.02.2011
Сообщений: 24
По умолчанию

Код:
int main()
{
   int a[3] = {52, 23, 33};
   double total = 0.0;
   std::vector<int> v;for(int i=0;i<3;v.push_back(a[i++])); 
   std::cout << total / v.size() << std::endl;
   return 0;
}
как бы такой конечный результат ?
keksik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибки.. Wedzmin Помощь студентам 1 17.12.2011 14:26
Ошибки на С++ lena-lena Общие вопросы C/C++ 18 14.05.2010 13:43
Ошибки delphin100 Операционные системы общие вопросы 12 17.04.2008 14:15
Ошибки Terran Общие вопросы Delphi 3 05.02.2008 20:47