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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
ol4ik
22 / 21 / 6
Регистрация: 08.04.2010
Сообщений: 90
#1

Функция должна возвращать указатель на первый элемент массива,удовлетворяющий условию - C++

13.05.2011, 16:20. Просмотров 1192. Ответов 10
Метки нет (Все метки)

Функция должна возвращать указатель на первый элемент массива,удовлетворяющий условию(в данном случае используется указатель на бинарный предикат).Иначе возвращает адрес arr+len.
C++
1
2
3
4
5
6
7
8
9
10
11
12
int equals(int a,int b)
{ return (a==b); }
 
int * Find(int * Arr,int len,int k,int (*pfun(int,int)))  //k-заданное число,с которым сравниваем
{ int i;
  for (i=0;i<len;i++)
  if(pfun(k,Arr[i])) {                                                    
      cout<<"element Arr["<<i<<"]=";
      return &(Arr[i]);
                      break;}
  if(pfun(k,Arr[i])==false) return &(Arr+len);
}
Ошибки:
error C2102: '&' requires l-value
error C2664: 'Find' : cannot convert parameter 4 from 'int (__cdecl *)(int,int)' to 'int *(__cdecl *)(int,int)'
Всё перепробовала,но не могу понять,что не так >.<

Добавлено через 16 часов 46 минут
никаких идей?т_т
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.05.2011, 16:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Функция должна возвращать указатель на первый элемент массива,удовлетворяющий условию (C++):

Функция должна возвращать наименьший положительный элемент массива - C++
Помогите, не могу написать этот клочек кода...голова кипит.. Есть постановка задания: Написать функцию (процедуру) с параметрами для...

Найти наибольший элемент массива удовлетворяющий заданному условию - C++
Пытался сам написать, но если скину свои наброски это вряд ли поможет. Помогите пожалуйста кто знает. Ввести с клавиатуры вещественный...

Функция должна возвращать новый массив, состоящий из отрицательных элементов исходного массива - C++
У меня есть задание: написать функцию (процедуру) с параметрами для обработки одномерного массива целочисленных данных (количество...

Количество и мин. элемент удовлетворяющий условию - C++
В одномерном массиве x={x(i)}, где i=0,1,2,3...,10 необходимо найти количество элементов, удовлетворяющих условию 0.5&lt;sin(x(i))&lt;=0 и...

В массиве Х(100) найти наибольший элемент, удовлетворяющий условию 1<Xy<=2 - C++
Dev C++ В массиве Х(100) найти наибольший элемент, удовлетворяющий условию 1&lt;=Xy&lt;=2 Xy- это икс по основанию игрик Большое спасибо...

Функция с типом char, которая должна возвращать интовое значение - C++
Всем привет. Странное дело. Есть функция с типом char, которая должна возвращать интовое значение в виде площади квадрата (так по заданию...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
13.05.2011, 17:27 #2
Цитата Сообщение от ol4ik Посмотреть сообщение
&(Arr+len)
Так нельзя писать. Можно брать адрес только переменной, а не временного значения.
Вторая ошибка видимо там, где вы вызываете эту функцию.
ol4ik
22 / 21 / 6
Регистрация: 08.04.2010
Сообщений: 90
13.05.2011, 17:34  [ТС] #3
gooseim, но мне по условию нужно вернуть это значение,чтобы узнать,какое число следует после последнего элемента массива или вроде того
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
13.05.2011, 17:36 #4
пишите:
C++
1
return Arr+len
& здесь не нужен
ol4ik
22 / 21 / 6
Регистрация: 08.04.2010
Сообщений: 90
13.05.2011, 17:45  [ТС] #5
gooseim, проблема с & решилась,спасибо)
тогда как правильно вывести на печать эту функцию?
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
13.05.2011, 17:47 #6
ol4ik, не совсем понял, что вы подразумеваете под фразой "вывести на печать".
ol4ik
22 / 21 / 6
Регистрация: 08.04.2010
Сообщений: 90
13.05.2011, 17:49  [ТС] #7
gooseim, в том смысле,чтобы значение вывелось на экран
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
13.05.2011, 17:52 #8
C++
1
cout<<"element Arr["<<i<<"]="<<Arr[i]<<endl;
ol4ik
22 / 21 / 6
Регистрация: 08.04.2010
Сообщений: 90
13.05.2011, 17:56  [ТС] #9
gooseim, в таком случае ошибка error C2664: 'Find' : cannot convert parameter 4 from 'int (__cdecl *)(int,int)' to 'int *(__cdecl *)(int,int)'
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
13.05.2011, 18:03 #10
ol4ik, эта ошибка с выводом значения на экран не связана. Смотрите, где вы вызываете эту функцию.
ol4ik
22 / 21 / 6
Регистрация: 08.04.2010
Сообщений: 90
13.05.2011, 21:34  [ТС] #11
всё,разобралась *о*
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.05.2011, 21:34
Привет! Вот еще темы с ответами:

Может ли указатель показывать на последний элемент массива, а не на первый? - C++
Люди!!!! подскажите! может ли указатель показывать на последний элемент массива, а не на первый???(С++) и как это сделать, если...

3. Написать функцию, которая обеспечивает ввод с клавиатуры целого положительного числа. Функция из набора знаков должна возвращать только целые полож - C++
Написать функцию, которая обеспечивает ввод с клавиатуры целого положительного числа. Функция из набора знаков должна возвращать только...

Функция должна принять указатель на саму себя - C++
не рекурсия. (ошибка в названии) Функция должна принять указатель на саму себя. моя неверная попытка имеет вид int myfunc(int...

Функция меняющая первый отрицательный элемент с максимальным элементом массива - C++
Добавить функцию,которая, первый отрицательный элемент массива меняет местами с максимальным элементом массива. #include &lt;iostream&gt; ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
13.05.2011, 21:34
Ответ Создать тему
Опции темы

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