Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> использование функции maximum 
:(
    Опции темы
ShadowC
Дата 28.8.2011, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 96
Регистрация: 23.6.2011

Репутация: нет
Всего: нет



собственно попытался использовать функцию maximum ничего не получилось,попытался использовать его в самом элементарном контексте 

Код

#inclide <iostream>
using namespace std;

int main()
{
int x,y,z;
int result;
cin>>x>>y>>z;
result=maximum(x,y,z);
cout<<result<<endl;
system("PAUSE");
return 0;
}


выдает ошибку "maximum undeclared (first use this function)" которая сообщает мне,что maximum необьявлена, собственно в чем заключается ошибка? и как её можно исправить?
P.S. копилятор Dev-C++ 

Это сообщение отредактировал(а) ShadowC - 28.8.2011, 17:08
PM MAIL   Вверх
Чoо
Дата 28.8.2011, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 313
Регистрация: 22.9.2009

Репутация: 4
Всего: 4



я знаю функции нахождения максимума или минимума для двух аргументов. fmax и fmin
обе в cmath


--------------------
user posted image

OS: Debian Squeeze (kernel 3.8.2)
IDE: qtCreator 1.3.1; Eclipse SDK 3.5.2
PM MAIL   Вверх
ShadowC
Дата 28.8.2011, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 96
Регистрация: 23.6.2011

Репутация: нет
Всего: нет



не,эта функция предназначена для возврата наибольшего из 3 аргументов и в том что она называется maximum  в этом я уверен,но вот блин чего-то я недопонимаю в её использование и да использование библиотеки <cmath> не помогает уже пробовал...
PM MAIL   Вверх
Чoо
Дата 28.8.2011, 19:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 313
Регистрация: 22.9.2009

Репутация: 4
Всего: 4



поиск максимума из с использованием fmax будет выглядеть так: 
Код

result = fmax(x,fmax(y,z));


Добавлено через 1 минуту и 4 секунды
ну не знаю тогда где функция максимум.. можно ее самому написать для n-го количества аргументов, если спользовать макросы


--------------------
user posted image

OS: Debian Squeeze (kernel 3.8.2)
IDE: qtCreator 1.3.1; Eclipse SDK 3.5.2
PM MAIL   Вверх
spyswamp
Дата 29.8.2011, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 349
Регистрация: 18.8.2006

Репутация: 1
Всего: 7



Чoо, не советуй никому использовать макросы для этих целей. Ты чего.


--------------------
- why you call it beta?
- cuz it's betta then nothin'
PM MAIL   Вверх
ShadowC
Дата 29.8.2011, 11:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 96
Регистрация: 23.6.2011

Репутация: нет
Всего: нет



я кстате по поводу этой функции в и инете не смог ничего нарыть....
PM MAIL   Вверх
ZVano
Дата 29.8.2011, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 259
Регистрация: 11.12.2006
Где: Украина, Кривой Р ог

Репутация: 1
Всего: 4



Пример на LiveWorkSpace
GetMaxOfPositive - возвращает максимальное положительное целое из указаного списка значений. Последнее значение должно быть отрицательнвм и является признаком завершения списка аргументов.
GetMaxOfCount - возвращает максимальное целое из переданых аргументов. 1м аргументом следует передать количество передаваемых значений (без учета 1го аргумента).

Код

#include <iostream>
#include <stdarg.h>

int GetMaxOfPositive(int firstVal, ...) {
   int result = firstVal;
   int curVal = firstVal;

   va_list args;
   va_start(args, firstVal);
   do {
      if (curVal > result) {
         result = curVal;
      }
   } while ((curVal = va_arg(args, int)) >= 0);
   va_end(args);

   return result;
}

int GetMaxOfCount(int argsCount, ...) {
   int result = 0;

   va_list args;
   va_start(args, argsCount);
   for(int cnrArgs = 0; cnrArgs < argsCount; cnrArgs++){
     int curVal = va_arg(args, int);
      if (curVal > result) {
         result = curVal;
      }
   }
   va_end(args);

   return result;
}

int main(){
   std::cout << "GetMaxOfPositive(...)::" << GetMaxOfPositive(2, 4, 1, 10, 7, -1) << std::endl;
   std::cout << "GetMaxOfCount(3, ...)::" << GetMaxOfCount(3, 1, 2, 3) << std::endl;
   std::cout << "GetMaxOfCount(4, ...)::" << GetMaxOfCount(4, 4, 3, 2, 1) << std::endl;
}



--------------------
НЕ ФЛУДИМ. Пользуемся кнопками "+" или "-" для выражения своего отношения к теме или сообщению.
Гуглим "Как правильно задавать вопросы"
PM MAIL Skype   Вверх
xvr
Дата 29.8.2011, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 35
Всего: 223



Цитата(ShadowC @  28.8.2011,  17:07 Найти цитируемый пост)
попытался использовать функцию maximum

Откуда вы ее вообще взяли? Такой стандартной функции нет.

PM MAIL   Вверх
Чoо
Дата 29.8.2011, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 313
Регистрация: 22.9.2009

Репутация: 4
Всего: 4



spyswamp, имел ввиду что-то вроде этого:
Код

#include <iostream>
#include <cstdarg>

int maximum(const int count, ...){
    va_list p;
    va_start(p, count);
    int r = va_arg(p,int);
    for(int i = 2; i<=count; ++i)
        if(r<(int)*p)
            r = va_arg(p,int);
    va_end(p);
    return r;
}

int main(){
    std::cout<<maximum(4,2,10,1);
    return 0;
}

конечно лучше передавать список аргументов в массиве, в противном случае вся ответственность по передаче параметров на программисте

Добавлено @ 12:32
пока писал, мня опередили  smile 

Это сообщение отредактировал(а) Чoо - 29.8.2011, 12:36


--------------------
user posted image

OS: Debian Squeeze (kernel 3.8.2)
IDE: qtCreator 1.3.1; Eclipse SDK 3.5.2
PM MAIL   Вверх
spyswamp
Дата 29.8.2011, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 349
Регистрация: 18.8.2006

Репутация: 1
Всего: 7



Однако стоит учитывать, что эти функции нужны будут не только для int'ов. ;)


--------------------
- why you call it beta?
- cuz it's betta then nothin'
PM MAIL   Вверх
boostcoder
Дата 29.8.2011, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 20
Всего: 110



лучше написать шаблоны.
а еще лучше, один шаблон с variadic templates ;)
PM WWW   Вверх
spyswamp
Дата 29.8.2011, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 349
Регистрация: 18.8.2006

Репутация: 1
Всего: 7



А еще лучше не страдать фигней. smile Ряд более чем из двух элементов - уже коллекция/массив, а ее/его можно отдать стандартному алгоритму.


--------------------
- why you call it beta?
- cuz it's betta then nothin'
PM MAIL   Вверх
mes
Дата 29.8.2011, 20:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(boostcoder @  29.8.2011,  12:02 Найти цитируемый пост)
а еще лучше, один шаблон с variadic templates ;) 

ммм, это чтоб получать максимум для разнотипных переменных ?! азачем ?


--------------------
PM MAIL WWW   Вверх
boostcoder
Дата 30.8.2011, 02:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 20
Всего: 110



Цитата(mes @  29.8.2011,  20:18 Найти цитируемый пост)
это чтоб получать максимум для разнотипных переменных ?!

угу

Цитата(mes @  29.8.2011,  20:18 Найти цитируемый пост)
азачем ? 

эм...щаподумаю..
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0741 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.