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

Сравнение чисел - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
EasyProgramer96
13 / 12 / 0
Регистрация: 13.05.2013
Сообщений: 152
Записей в блоге: 3
31.12.2013, 20:55     Сравнение чисел #1
Привет всем!Люди помогите написать программ,которая сравнивает три числа и выдает наибольшее и наименьшее из них.Задача из книги Дейтелов.

Всем заранее спасибо)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.12.2013, 20:55     Сравнение чисел
Посмотрите здесь:

Сравнение чисел. C++
C++ Сравнение двух чисел
Сравнение чисел C++
C++ Сравнение трёх чисел
C++ Сравнение строк, чисел и т.д
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
EasyProgramer96
13 / 12 / 0
Регистрация: 13.05.2013
Сообщений: 152
Записей в блоге: 3
31.12.2013, 22:22  [ТС]     Сравнение чисел #21
это как?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ev_Hyper
 Аватар для Ev_Hyper
1808 / 1629 / 435
Регистрация: 15.12.2013
Сообщений: 5,800
31.12.2013, 22:39     Сравнение чисел #22
EasyProgramer96, еще одна ошибка, там где поиск ср. ариф. Замените на:
C++
1
cout << "Частное равно " << (double)(a + b + c)/3 << endl;
Добавлено через 58 секунд
Цитата Сообщение от EasyProgramer96 Посмотреть сообщение
это как?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 if ( ( a > b) && (a > c) && (b > c) )
     {
        cout << "Наибольшее равно"  << a;
        cout << "Наименьшее равно"  << c;
          
     }
     if ( (b > a) && (b > c ) && (a > c) )
     {
          cout << "Наибольшее равно " << b;
          cout << "Наименьшее равно " << c;
          
     }
     if ( (c > a) && (c > b) && (a > b))
     {
        cout << "ННаибольшее равно " << c;
        cout << "Наименьшее равно " << b;
     }
EasyProgramer96
13 / 12 / 0
Регистрация: 13.05.2013
Сообщений: 152
Записей в блоге: 3
31.12.2013, 22:42  [ТС]     Сравнение чисел #23
странно,я также делал,но у меня ничего не выводилось
sergei60
47 / 28 / 4
Регистрация: 10.06.2012
Сообщений: 334
31.12.2013, 22:45     Сравнение чисел #24
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
  
    if(a>b && b>c && c<a){
    cout<<"наименьшее "<<c;
    cout<<"наибольшее"<<a ;
   
    return 0;
  
}
    if(c>a && c>b && a>b){
    cout<<"наименьшее"<<b;
    cout<<"наибольшее"<<c;
  
    return 0;
  
   }
    if(a<b && b>c && c<a)
    cout<<"наименьшее"<<c;
    cout<<"наибольшее"<<b;
    
    return 0;
    }
или так последний участок.
Ev_Hyper
 Аватар для Ev_Hyper
1808 / 1629 / 435
Регистрация: 15.12.2013
Сообщений: 5,800
31.12.2013, 22:45     Сравнение чисел #25
EasyProgramer96, вы исправили ошибку, насчет "частного"?
sergei60
47 / 28 / 4
Регистрация: 10.06.2012
Сообщений: 334
31.12.2013, 22:56     Сравнение чисел #26
И еще условия добавить когда : a>b ,b<c ,a<c и a>b ,b<c, a>c. С новым годом!
EasyProgramer96
13 / 12 / 0
Регистрация: 13.05.2013
Сообщений: 152
Записей в блоге: 3
02.01.2014, 10:11  [ТС]     Сравнение чисел #27
Цитата Сообщение от sergei60 Посмотреть сообщение
С новым годом!
Спасибо!Да все дописал и исправил,но ничего не получилось

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
#include <iostream>
 
using namespace std;
 
int main()
{
   setlocale( LC_ALL,"" ); 
   
   int a, b, c;
   
   cout << "Введите два числа: "  << endl;
   cin >> a >> b >> c;
   
   cout << "Сумма равна " << a + b + c << endl;
   cout << "Произведение равно " << a * b * c <<endl;
   
   
   if ( (a > b) && (a > c) && (b > c) )
     cout << "Большее: " << a << endl;
     cout << "Меньшее: " << c;
   
   if ( (b > a) && (b >c) && (a > c) )
     cout << "Большее: " << b << endl;
     cout << "Меньшее: " << c;
   
   if ( (c > a) && (c >b) && (a > b) )
     cout << "Большее: " << c << endl;
     cout << "Меньшее: " << b;
       
 
    
    
    
    system("pause>>void");
    return 0;
    
}

Проверьте пожалуйста что не так,а то выводится не то, что надо.

Добавлено через 53 секунды
Если отставить только первое условие,то все вроде бы работает

Добавлено через 2 минуты
Программа должна выглядеть так : 13 27 14

Введите три различных числа
Сумма равна 54
Среднее значение равно 18
Произведение равно 4914
Наименьшее равно
Наибольшее равно 27


Числа так, для примера
sergei60
47 / 28 / 4
Регистрация: 10.06.2012
Сообщений: 334
02.01.2014, 10:56     Сравнение чисел #28
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
 #include <iostream>
    #include <cmath>
  
  
    using namespace std;
     
    int main () {
    int a,b,c;
    cout<<"введите три числа "<<endl;
    cin>>a;
    cin>>b;
    cin>>c;
    cout << "Сумма равна " << a + b + c << endl;
   cout << "Произведение равно " << a * b * c <<endl;
   
    if(a<b && b<c && c>a ){
    cout<<"меньшее "<<a;
    cout<<"большее"<<c;
 return 0;
}
    if(a>b && b>c && c<a){
    cout<<"меньшее "<<c;
    cout<<"большее"<<a;
    return 0;
}
    if(a>b && b<c && c>a){
    cout<<"меньшее"<<b;
    cout<<"большее"<<c;
    return 0;
}
    if(a<b && b>c && c<a){
    cout<<"меньшее"<<c;
    cout<<"большее"<<b;
    return 0;
}
    if(a<b && b>c && c>a){
    cout<<"меньшее"<<a;
    cout<<"большее"<<c;
    return 0;
 
}
    return 0;
    }
Добавлено через 12 минут
EasyProgramer96,поэкспериментируй,это же так интересно! Вообще язык С++это как закон физики существующий как данность.Вот он есть и все! Ну это личные мои ощущения.Удивительный язык!
EasyProgramer96
13 / 12 / 0
Регистрация: 13.05.2013
Сообщений: 152
Записей в блоге: 3
02.01.2014, 10:59  [ТС]     Сравнение чисел #29
Цитата Сообщение от sergei60 Посмотреть сообщение
Удивительный язык!
Я тоже так считаю!У вас работала эта программа?
sergei60
47 / 28 / 4
Регистрация: 10.06.2012
Сообщений: 334
02.01.2014, 11:04     Сравнение чисел #30
http://ideone.com/LdSIIJ проверьте,может что-то не дописал ,все работает отлично! Выложи скопированный код Тот что у тебя не проходит.
Genn55
341 / 188 / 37
Регистрация: 26.12.2012
Сообщений: 658
02.01.2014, 11:08     Сравнение чисел #31
У вас после if написаны 2 строчки,а выполняться будет 1.Для того,чтобы выполнялись обе строчки их нужно заключить в фигурные скобочки.
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
#include <iostream>
#include <stdlib.h>
using namespace std;
 
int main()
{
   //setlocale( LC_ALL,"" );
system("chcp 1251 > nul");
   int a, b, c;
 
   cout << "Введите два числа: "  << endl;
   cin >> a >> b >> c;
 
   cout << "Сумма равна " << a + b + c << endl;
   cout << "Произведение равно " << a * b * c <<endl;
 
 
   if ( (a > b) && (a > c) && (b > c) )
      {
         cout << "Большее: " << a << endl;
         cout << "Меньшее: " << c;
      }
 
   if ( (b > a) && (b >c) && (a > c) )
      {
        cout << "Большее: " << b << endl;
        cout << "Меньшее: " << c;
      }
 
   if ( (c > a) && (c >b) && (a > b) )
      {
        cout << "Большее: " << c << endl;
        cout << "Меньшее: " << b;
      }
 
   // system("pause>>void");
    return 0;
 
}
sergei60
47 / 28 / 4
Регистрация: 10.06.2012
Сообщений: 334
02.01.2014, 11:36     Сравнение чисел #32
EasyProgramer96Может ты набираешь числа ,например 2 7 5 ,а этого условия в моем коде нет. Так дописать по аналогии очень просто.И еще не рассматривались 5 условий ,когда a=b ,b=c, a=c .Тоже все они пишутся аналогично.
Alexdemath
 Аватар для Alexdemath
125 / 122 / 6
Регистрация: 11.04.2010
Сообщений: 253
03.01.2014, 01:22     Сравнение чисел #33
Цитата Сообщение от EasyProgramer96 Посмотреть сообщение
Привет всем!Люди помогите написать программ,которая сравнивает три числа и выдает наибольшее и наименьшее из них.Задача из книги Дейтелов.
Всем заранее спасибо)
Вариант с тернарным оператором

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using namespace std;
 
int main()
{
    setlocale(0,"rus");
    cout << "Введите три числа:\n";
    int a,b,c;
    cin >> a >> b >> c;
 
    int min3 = (a < b && a < c) ? a : (b < a && b < c) ? b : c,
        max3 = (a > b && a > c) ? a : (b > a && b > c) ? b : c;
 
    cout << "\nМинимальное число:  " << min3
         << "\nМаксимальное число: " << max3;
 
    system("pause > null");
    return 0;
}
Genn55
341 / 188 / 37
Регистрация: 26.12.2012
Сообщений: 658
03.01.2014, 01:56     Сравнение чисел #34
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
 
using namespace std;
 
int main()
{
 
    int a, b, c;
    cin >> a >> b >> c;
    cout << "Max: " << max(max(a, b), c) << "\n";
    cout << "Min: " << min(min(a, b), c) << "\n";
 
    return 0;
}
и тернарного оператора не нужно.Но про 4ю переменную ничего не говорилось.

Добавлено через 11 минут
Наверное требовалось
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
#include <iostream>
 
using namespace std;
 
int main()
{
int x, y, z;
 
cout << "Vvedite 3 celih chisla: \n";
cin >> x >> y >> z;
 
cout << "Summa =  " << x + y + z << endl;
cout << "Srednee =  " << (x + y + z) / 3 << endl;
cout << "Proizvedenie =  " << x * y * z << endl;
 
if (x > y)
if (x > z)
cout << "Naibolshee =  "  << x << endl;
if (y > x)
if (y > z)
cout << "Naibolshee =  "  << y << endl;
if (z > x)
if (z > y)
cout << "Naibolshee =  " << z << endl;
if (x < y)
if (x < z)
cout << "Naimenshee =  " << x << endl;
if (y < x)
if (y < z)
cout << "Naimenshee =  " << y << endl;
if (z < x)
if (z < y)
cout << "Naimenshee =  " << z << endl;
 
return 0;
}
если я все правильно понял.

Добавлено через 7 минут
Выполняться будет когда все 3 числа разные.
EasyProgramer96
13 / 12 / 0
Регистрация: 13.05.2013
Сообщений: 152
Записей в блоге: 3
03.01.2014, 16:43  [ТС]     Сравнение чисел #35
Спасибо заработало,только дописал system("pause>>void"),чтобы не закрывалась.

Добавлено через 5 минут
Цитата Сообщение от Genn55 Посмотреть сообщение
Выполняться будет когда все 3 числа разные.
Скажите а можно вместо
C++
1
2
if (x > y)
if (x > z)
написать
C++
1
if( (x > y) && (x > z))
Genn55
341 / 188 / 37
Регистрация: 26.12.2012
Сообщений: 658
03.01.2014, 16:59     Сравнение чисел #36
В реальных программах даже нужно.

Добавлено через 9 минут
Сейчас вам главное понять как это работает.Попробуйте это же проделать с 4мя,5ю цифрами.Не бойтесь экспериментировать с кодом будет только лучше для вас.Удачи.
EasyProgramer96
13 / 12 / 0
Регистрация: 13.05.2013
Сообщений: 152
Записей в блоге: 3
03.01.2014, 17:05  [ТС]     Сравнение чисел #37
Понятно,большое спасибою
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
03.01.2014, 17:09     Сравнение чисел #38
http://stackoverflow.com/questions/1...arguments-in-c
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <iterator>
#include <initializer_list>
 
template<typename T>
T min(std::initializer_list<T> list)
{
    T res = *list.begin();
    for (auto elem : list)
    {
        if (res > elem)
            res = elem;
    }
    return res;
}
 
int main()
{
    std::cout << min<double>({1,2,3,4,5,6,-5.5,21,3});
}
Добавлено через 3 минуты
Или так
C++
1
2
3
4
5
6
7
8
9
10
11
12
template<typename T>
const T &min(std::initializer_list<T> list)
{
    const T *res = list.begin(),
            *it  = list.begin();
    while (++it != list.end())
    {
        if (*res > *it)
            res = it;
    }
    return *res;
}
sergei60
47 / 28 / 4
Регистрация: 10.06.2012
Сообщений: 334
03.01.2014, 17:15     Сравнение чисел #39
outoftime,эти коды у меня например не идут ,видимо нужна поддержка С++11 ,а до этого надо дорасти еще... Но интересно познакомиться,спасибо.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.01.2014, 17:28     Сравнение чисел
Еще ссылки по теме:

C++ Сравнение 3 чисел
C++ Сравнение чисел
C++ Поразрядное сравнение чисел

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

Или воспользуйтесь поиском по форуму:
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
03.01.2014, 17:28     Сравнение чисел #40
Еще можно рекурсивный вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
template<typename T>
const T &min(const T &value)
{
    return value;
}
 
template<typename T, typename... Args>
const T &min(const T &value, Args... args)
{
    const T *res = &min<T>(args...);
    return *res < value ? *res : value;
}
Добавлено через 2 минуты
P.S. для рекурсивного варианта много либ подключать не надо.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
template<typename T>
const T &min(const T &value)
{
    return value;
}
 
template<typename T, typename... Args>
const T &min(const T &value, Args... args)
{
    const T *res = &min<T>(args...);
    return *res < value ? *res : value;
}
 
int main()
{
    std::cout << min<double>(1,2,3,4,5,6,-5.5,21,3);
}
Добавлено через 3 минуты
Bash
1
2
3
4
5
6
7
8
9
mingw32-g++.exe -Wall -fexceptions  -std=c++98 -g     -c D:\Projects\c++\help\help\main.cpp -o obj\Debug\main.o
D:\Projects\c++\help\help\main.cpp:9:30: warning: variadic templates only available with -std=c++11 or -std=gnu++11 [enabled by default]
 template<typename T, typename... Args>
                              ^
D:\Projects\c++\help\help\main.cpp:10:38: warning: variadic templates only available with -std=c++11 or -std=gnu++11 [enabled by default]
 const T &min(const T &value, Args... args)
                                      ^
mingw32-g++.exe  -o bin\Debug\help.exe obj\Debug\main.o    
Output size is 107.28 KB
Собирается на ура, только предупреждений много

Добавлено через 43 секунды
А ну да (: Видимо без C++11 никак (:

Добавлено через 32 секунды
Цитата Сообщение от outoftime Посмотреть сообщение
warning: variadic templates only available with -std=c++11 or -std=gnu++11 [enabled by default]
вот
Yandex
Объявления
03.01.2014, 17:28     Сравнение чисел
Ответ Создать тему
Опции темы

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