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

Сравнить переменные - C++

Восстановить пароль Регистрация
 
Mari-mari
0 / 0 / 0
Регистрация: 22.04.2012
Сообщений: 36
08.05.2012, 12:51     Сравнить переменные #1
Всем доброго времени суток, подскажите как сравнить 5 целочисленных переменных и большую из них распечатать?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Infinity3000
 Аватар для Infinity3000
1057 / 576 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
08.05.2012, 13:14     Сравнить переменные #2
Цитата Сообщение от Mari-mari Посмотреть сообщение
подскажите как сравнить 5 целочисленных переменных и большую из них распечатать?
с помощью

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
if(первое число большее)
{
    выводим первое
}
else if(второе число большее)
{
     выводим второе
}
.......................
else
{
     выводим пятое
}

Или создай массив из пяти элементов и найди в нем максимальное!
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
08.05.2012, 13:17     Сравнить переменные #3
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <algorithm>
#include <iterator>
 
int main()
{
    int arr[5] = {1, 0, 10, 5, 2};
    std::copy(&arr[0], &arr[5], std::ostream_iterator<int>(std::cout, " "));
    std::cout<< std::endl<< "Max = "<< *std::max_element (&arr[0], &arr[5]);
    return 0;
}
Infinity3000
 Аватар для Infinity3000
1057 / 576 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
08.05.2012, 13:21     Сравнить переменные #4
MrGluck, ну я думаю STL не прокатит, так как задача первого курса, а там наврятли знают о существовании STL)
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
08.05.2012, 13:23     Сравнить переменные #5
Цитата Сообщение от Infinity3000 Посмотреть сообщение
MrGluck, ну я думаю STL не прокатит, так как задача первого курса, а там наврятли знают о существовании STL)
Зато элегантно
Да и некоторые начинают понимать, что легче прочитать 2 строки из учебника, чем разобраться в данном коде)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
 
int main()
{
    int arr[5] = {1, 0, 10, 5, 2}, max = 0;
    for (int i=0; i < 5; i++)
    {
        if (arr[i] > max) max = arr[i];
        std::cout<< arr[i]<< " ";
    }    
    std::cout<< std::endl<< "Max = "<< max;
    return 0;
}
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
08.05.2012, 13:44     Сравнить переменные #6
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#include <stdlib.h>
 
#define MAX(a,b) ((a) > (b) ? (a) : (b))
 
int get_max(int max, int* begin, int* end) {
  if (begin < end) return get_max (MAX(*begin, max), begin+1, end);
  else return max;
}
 
int main() {
  int arr[] = { 1, 2, 7, 4, 5 };
  printf ("%d\n", get_max(arr[0], arr, arr + sizeof(arr)/sizeof(arr[0])));
  return EXIT_SUCCESS;
}
Добавлено через 17 минут
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <stdlib.h>
 
#define MAX(a,b) ((a) > (b) ? (a) : (b))
 
int get_max_impl(int max, int* begin, int* end) {
  if (begin != end) return get_max_impl (MAX(*begin, max), begin+1, end);
  else return max;
}
 
int get_max(int* begin, int* end) {
  return get_max_impl (*begin, begin+1, end);
}
 
int main() {
  int arr[] = { 1, 2, 7, 4, 8 };
  printf ("%d\n", get_max(arr, arr + sizeof(arr)/sizeof(arr[0])));
  return EXIT_SUCCESS;
}
SK01736
3 / 3 / 1
Регистрация: 21.01.2011
Сообщений: 29
08.05.2012, 13:58     Сравнить переменные #7
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
using namespace std;
int main()
{
int arr[5]={1,2,3,4,5};
int max=-10000;
for(int i=0;i<5;i++)
if(arr[i]>max) 
max=arr[i];
cout<<"max="<<max<<endl;
}
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
08.05.2012, 14:01     Сравнить переменные #8
Цитата Сообщение от SK01736 Посмотреть сообщение
int max=-10000;
не очень хорошая практика - лучше инициализировать первым значением в массиве
(а если вдруг в массиве все значения будут меньше -10000?)
SK01736
3 / 3 / 1
Регистрация: 21.01.2011
Сообщений: 29
08.05.2012, 14:05     Сравнить переменные #9
Цитата Сообщение от alex_x_x Посмотреть сообщение
не очень хорошая практика - лучше инициализировать первым значением в массиве
(а если вдруг в массиве все значения будут меньше -10000?)
если это задача для 1 курса, то здесь не очень обязательно делать идеально заумный код, поэтому не вижу смысла в введении дополнительной цифры в массиве, тем более что могут заставить изменить код, что бы числа вводились с клавиатуры. Следовательно это будет сложнее реализовать и добавить еще пару строчек.

P.S. это же для начинающих, а не для прогеров выше 1 уровня.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.05.2012, 14:09     Сравнить переменные
Еще ссылки по теме:

Сравнить переменные и сохранить максимальное значение C++
Нужно сравнить две переменные типа string C++
C++ Сравнить 2-й и 4-й символы

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

Или воспользуйтесь поиском по форуму:
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
08.05.2012, 14:09     Сравнить переменные #10
Цитата Сообщение от SK01736 Посмотреть сообщение
если это задача для 1 курса, то здесь не очень обязательно делать идеально заумный код, поэтому не вижу смысла в введении дополнительной цифры в массиве, тем более что могут заставить изменить код, что бы числа вводились с клавиатуры. Следовательно это будет сложнее реализовать и добавить еще пару строчек.

P.S. это же для начинающих, а не для прогеров выше 1 уровня.
То, что это задача для 1 курса, отнюдь не значит, что нужно подгонять значения как тебе хочется в рамках данной задачи. Можно вобще написать так:
C++
1
std::cout<< "Array: 2, 4, 1, -10, 27\nMax = 27";
или же
C++
1
2
int array[5] = {2, 4, 1, -10, 27}; 
int  max = array[4];
Yandex
Объявления
08.05.2012, 14:09     Сравнить переменные
Ответ Создать тему
Опции темы

Текущее время: 03:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru