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

Обработка одномерных элементов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ указатель на функцию http://www.cyberforum.ru/cpp-beginners/thread291973.html
Функция должна сортировать и по возрастанию,и по убыванию с помощью бинарных предикатов.И ещё отсортировать элементы массива по возрастанию их синуса. Программа работает только в одном случае,а для синусов вообще не работает. Объясните,в чём моя ошибка,а точнее,как сделать,чтобы функция сортировала правильно для всех трёх случаев. #include "stdafx.h" #include <conio.h> #include <iostream>...
C++ Матрица, последовательность, координаты Здравствуйте, помогите решить в Си 1) Прочитать текстовый файл и подсчитать количество слов в нём (слова разделены пробелами, запятыми и точками). Имя файла передаётся через командную строку. 2) Вводится последовательность целых чисел и записывается в двусвязный список. Удалить из этого списка элементы с минимальным значением. 3) Написать программу для определения положения точки с... http://www.cyberforum.ru/cpp-beginners/thread291972.html
C++ Умножение матриц
Задача такая : Для заданой квадратической матрицы А заданого порядка n найти произведение А * В, где элементы матрицы В узнаются за формулой : Bij = 1/(i+j-1) i.j = целые больше ноля Вот что получилось: #include <iostream> #include <cstdlib> #include <stdio.h> #include <conio.h> using namespace std;
Возврат строки из функции по указателю C++
Здравствуйте. Обьясните пожалуйсто, почему компилятор выдает предупреждение при выполнении следующего кода и почему строка возвращается не полностью ? #include "windows.h" #include <iostream> using namespace std; char *func() { char arr="stro4ka"; return arr;
C++ запись строк в многомерный массив http://www.cyberforum.ru/cpp-beginners/thread291941.html
Здравствуйте. Подскажите пожалуйсто, как записать строки в многомерный массив. Я делаю так: #include "windows.h" #include <iostream> using namespace std; int main() { char mass;//заранее созданный массив для имен
C++ Создать stl очередь, заполнить ее случайным образом и отсортировать вопрос в заголовке, заранее спасибо. подробнее

Показать сообщение отдельно
prostoMaks
0 / 0 / 0
Регистрация: 02.05.2011
Сообщений: 11
09.05.2011, 21:27     Обработка одномерных элементов
есть код для задачи:
Преобразовать заданный массив целых положительных чисел F(n) таким образом, чтобы цифры каждого его элемента были записаны в обратном порядке. Определить количество простых чисел в массиве до и после преобразования. После преобразования удалить из массива максимальный элемент.

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
#include <iostream>
#include <algorithm>
#include <vector>
 
bool is_prime(const int n){
  for(int i = 2; i <= n / 2; i++)
    if( !(n % i) )
      return false;
  return true;
}
 
void print_arr(std::vector<int> &_a){
  for(std::vector<int>::value_type i = 0; i < _a.size(); ++i)
    std::cout << _a[i] << ' ';
}
 
int main(){
  size_t n = 0, cnt_before, cnt_after;
  std::cout << "\nKolichestvo elementov = ";
  std::cin >> n;
  std::vector<int> arr(n);
  for(std::vector<int>::value_type i = 0; i < n; ++i){
    std::cout << "\n" << i + 1 << " element = ";
    std::cin >> arr[i];
  }
  cnt_before = std::count_if(arr.begin(), arr.end(), is_prime);
  struct func{
    int operator() (int _n){
      int __n = _n;
      _n = 0;
      while(__n){
        _n = _n * 10 + __n % 10;
        __n /= 10;
      }
      return _n;
    }
  };
  std::transform(arr.begin(), arr.end(), arr.begin(), func());
  cnt_after = std::count_if(arr.begin(), arr.end(), is_prime);
  std::cout << "\n\nMassiv posle transformacii: ";
  print_arr(arr);
  std::cout << "\n\nProstie elementi do preobrazovaniy = " << cnt_before
            << "\nProstie elementi posle prebrazovaniy = " << cnt_after;
  arr.erase(std::remove(arr.begin(), arr.end(), *std::max_element(arr.begin(), arr.end())), arr.end());
  std::cout << "\n\nMassiv bez max elememta: ";
  print_arr(arr);
  return 0;
}
вроде все написано правильно но у меня он выдает ошибку в этой строчке
C++
1
std::transform(arr.begin(), arr.end(), arr.begin(), func());
помогите кто может, что эта за ошибка
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 03:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru