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

Функция сравнения двух чисел - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.87
Osman
1 / 1 / 0
Регистрация: 07.10.2012
Сообщений: 16
04.11.2012, 15:04     Функция сравнения двух чисел #1
Проверьте кто-нибудь код пожалуйста.

Задача : Написать программу, выводящую на экран результат сравнения двух чисел в виде: A=10 B=5: A>B. Основная программа запрашивает два числа, передает их в функцию и в зависимости от возвращенного значения выводит сообщение. Функция возвращает 1 если A больше B, 0 если A равно B, -1 если A меньше B.
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
#include <iostream>
 
using namespace std;
 
 int Mycompare (int a, int b)
{
    if (a>b)
    {
        cout << "A = " << a << "\n";
        cout << "B = " << b << "\n";
        cout << "A > B " << "\n";
        return 1;
    }
 
    if (a<b)    {
        cout << "A = " << a << "\n";
        cout << "B = " << b << "\n";
        cout << "A < B \n" << "\n";
        return -1;
    }
 
    if (a == b)
        {
        cout << "A = " << a << "\n";
        cout << "B = " << b << "\n";
        cout << "A = B " << "\n";
        return 0;
        }
 
 
}
 
int main()
{    int A;
     int B;
    cout << "VVedite A: \n"; // Введите первое число
    cin >> A;
    cout << "Vvedite B: \n"; // Введите второе число
    cin >> B;
    Mycompare(A,B);
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Catstail
Модератор
 Аватар для Catstail
21423 / 10208 / 1662
Регистрация: 12.02.2012
Сообщений: 17,082
04.11.2012, 15:36     Функция сравнения двух чисел #2
Все хорошо... А пусть C++ проверит. Запусти и убедись!
hoob
19 / 11 / 1
Регистрация: 04.11.2012
Сообщений: 89
Записей в блоге: 1
04.11.2012, 16:10     Функция сравнения двух чисел #3
Я бы сделал эту функцию void, т.е той, которая после своего выполнения ничего не возвращает. Что бы упростить код, можно в функции вынести вывод чисел А и В за условный оператор. Получилось как-то так:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void Mycompare (int a, int b)
{
    cout << "A = " << a << "\n";
    cout << "B = " << b << "\n";
 
    if (a>b)
        cout << "A > B " << "\n";
 
    if (a<b)
        cout << "A < B \n" << "\n";
 
    if (a == b)
        cout << "A = B " << "\n";
 
 
}
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 538
04.11.2012, 16:18     Функция сравнения двух чисел #4
Цитата Сообщение от Osman Посмотреть сообщение
Функция возвращает 1 если A больше B, 0 если A равно B, -1 если A меньше B.
hoob, воидная ф-ция тут не нужна, читайте внимательнее первый пост.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11800 / 6779 / 765
Регистрация: 27.09.2012
Сообщений: 16,829
Записей в блоге: 2
Завершенные тесты: 1
04.11.2012, 16:21     Функция сравнения двух чисел #5
Цитата Сообщение от Catstail Посмотреть сообщение
Все хорошо... А пусть C++ проверит. Запусти и убедись!
Не совсем.
Цитата Сообщение от Osman Посмотреть сообщение
Основная программа запрашивает два числа, передает их в функцию и в зависимости от возвращенного значения выводит сообщение.
У Вас функция Mycompare выводит сообщения, а должна только сравнивать числа и возвращать необходимое значение. А выводом результата на экран должна заниматься функция main
hoob
19 / 11 / 1
Регистрация: 04.11.2012
Сообщений: 89
Записей в блоге: 1
04.11.2012, 16:35     Функция сравнения двух чисел #6
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
int Mycompare (int a, int b)
{
    cout << "A = " << a << "\n";
    cout << "B = " << b << "\n";
 
    if (a>b) 
         return 1;       
 
    if (a<b) 
         return -1;
 
    if (a == b) 
         return 0;
 }
int main()
{   
    int A,B,res;
    cout << "VVedite A: " << endl; // Введите первое число
    cin >> A;
    cout << "Vvedite B: " << endl; // Введите второе число
    cin >> B;
    res=Mycompare(A,B);
    if (res==1)
        cout << "A>B" << endl;
    if (res==-1)
        cout << "A<B" << endl;
    if (res==0)
        cout << "A=B" << endl;
}
Osman
1 / 1 / 0
Регистрация: 07.10.2012
Сообщений: 16
04.11.2012, 16:48  [ТС]     Функция сравнения двух чисел #7
спасибо всем
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.11.2012, 17:02     Функция сравнения двух чисел
Еще ссылки по теме:

Перегруженная функция сравнения двух дат C++
C++ Функция сложения двух чисел
Объяснить код сравнения двух чисел без If C++

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

Или воспользуйтесь поиском по форуму:
Джек
5 / 5 / 0
Регистрация: 16.08.2011
Сообщений: 77
04.11.2012, 17:02     Функция сравнения двух чисел #8
Можно так.

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop
#include <iostream.h>
#include <conio.h>


//---------------------------------------------------------------------------

#pragma argsused
int MyCompare( int ,int );
int main()
{
int x=0;
int y=0;
cout<<"vvedite vashi danie:\n";
cin>>x>>y;

while(x!=00&&y!=00)
{
cout<<MyCompare(x,y);
cout<<endl;
cin>>x>>y;
}

return 0;
}
int MyCompare( int a,int b)
{
if(a>b)
{
cout<<"a>b..."<<endl<<"a=";
return a;}
if(b>a)
{
cout<<"b>a..."<<endl<<"b=";
return b;
}
if(a==b)
{cout<<"a=b..."<<endl;
cout<<"a=";
return a;
cout<<"b=";
return b;};

}

//---------------------------------------------------------------------------

Добавлено через 3 минуты
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop
#include <iostream.h>
#include <conio.h>


//---------------------------------------------------------------------------

#pragma argsused
int MyCompare( int ,int );
int main()
{
int x=0;
int y=0;
cout<<"vvedite vashi danie:\n";

while(cin>>x>>y)
{
cout<<MyCompare(x,y);
cout<<endl;
cin>>x>>y;
}

return 0;
}
int MyCompare( int a,int b)
{
if(a>b)
{
cout<<"a>b..."<<endl<<"a=";
return a;}
if(b>a)
{
cout<<"b>a..."<<endl<<"b=";
return b;
}
if(a==b)
{cout<<"a=b..."<<endl;
cout<<"a=";
return a;
cout<<"b=";
return b;};

}

//---------------------------------------------------------------------------
Yandex
Объявления
04.11.2012, 17:02     Функция сравнения двух чисел
Ответ Создать тему
Опции темы

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