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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2012, 21:12   #1
StivinKing
Пользователь
 
Регистрация: 18.11.2012
Сообщений: 28
Сообщение Нахождение наибольшего значения (для разного кол-ва переменных)

Доброго времени суток.

Как прописать функцию по нахождению наибольшего значения, чтобы та подходила под любое количество переменных? (2, 3 и т.д. переменные)
Заранее премного благодарен.
StivinKing вне форума Ответить с цитированием
Старый 23.12.2012, 21:28   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Не знаю, насколько так писать грамотно, но ответ выдает правильно:
Код:
#include <iostream>
using namespace std;

int
max(int argc, int *argv)
{
    int a = argv[0];
    for (int i = 1; i < argc; ++i) {
        if (argv[i] > a) {
            a = argv[i];
        }
    }
    return a;
}

int main(){
    cout << max(3, (int []){-9, 2, 3});
    return 0;
}
Update 21:50
Пока не писал графические приложения на С++.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 23.12.2012 в 21:52.
BDA вне форума Ответить с цитированием
Старый 23.12.2012, 21:41   #3
StivinKing
Пользователь
 
Регистрация: 18.11.2012
Сообщений: 28
По умолчанию

Спасибо большое)
с консольным приложением понятно. а как такое сделать для MFC приложения?))
StivinKing вне форума Ответить с цитированием
Старый 24.12.2012, 20:47   #4
Ezhik Kihze
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 639
По умолчанию

Цитата:
а как такое сделать для MFC приложения?
Абсолютно также, функция от этого не поменяется.

Можно еще так закрутить:
Код:
template<typename T>
T max(unsigned int count, ...)
{
  assert(count > 0);
  va_list args;
  va_start(args, count);
  T cMax = va_arg(args, T);
  for(unsigned int i = 1; i < count; ++i){
    T temp = va_arg(args, T);
    if(cMax < temp) cMax = temp;
  }
  va_end(args);
  return cMax;
}
ICQ: 677936656 Gmail: ekEmbed@gmail.com
Ezhik Kihze вне форума Ответить с цитированием
Старый 24.12.2012, 21:33   #5
StivinKing
Пользователь
 
Регистрация: 18.11.2012
Сообщений: 28
По умолчанию

Премного признателен обоим)
от меня "+"
StivinKing вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нахождение наибольшего отрицательного и наименьшего положительного числа. Paradoх Общие вопросы C/C++ 3 09.12.2012 16:10
Нахождение наибольшего общего делителяНахождение наибольшего общего делителя A_Orlov Паскаль, Turbo Pascal, PascalABC.NET 1 27.04.2010 16:53
Нахождение наибольшего числа из промежутка BaronVik Паскаль, Turbo Pascal, PascalABC.NET 4 21.04.2010 16:36
Нахождение наибольшего общего делителя fs444 Общие вопросы C/C++ 4 29.03.2010 19:07
[C] Нахождение наибольшего простого пути wolfram Помощь студентам 0 29.11.2009 12:33