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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.01.2011, 15:52   #1
ZYRGiX
Пользователь
 
Аватар для ZYRGiX
 
Регистрация: 24.07.2007
Сообщений: 17
По умолчанию Максимальное и минимальное из трех чисел

Задание:даны 3 числа, из их надо выбрать максимальное,минимальное,а то что меньше нуля приравнять нулю и вывести это сообщением на экран.

Вот что я сделал

Код:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop
#include <iostream.h>
#include <io.h>
#include <stdio.h>

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void main ()
{
int a=3, b=-5, c=2;
char max, min, minus, s;

//Выбор max
if (a>b)
        {
        if (a>c) max = 'a';
        else
                {
                if (b>c) max ='b';
                else max = 'c';
                };
        };

//Выбор min
if (a<b)
        {
        if (a<c) min = 'a';
        else
                {
                if (b<c) min = 'b';
                else min = 'c';
                };
        };

//Выбор minus
if (a<0)
        {
        minus = 'a';
        a = 0;
        };

if (b<0)
        {
        minus = 'b';
        b = 0;
        };

if (c<0)
        {
        minus = 'c';
        c = 0;
        };

cin >> s ;
cout << max << min << minus ;


}
При компиляции никакого сообщения не выводится
Помогите пожалуйста найти в чём моя ошибка.

Последний раз редактировалось ACE Valery; 20.01.2011 в 23:50.
ZYRGiX вне форума Ответить с цитированием
Старый 20.01.2011, 16:02   #2
Alexei91
Заблокирован
Форумчанин
 
Аватар для Alexei91
 
Регистрация: 30.12.2009
Сообщений: 544
По умолчанию

Добавьте getch();
и подключите соответсвующий модуль через директиву препроцессора #include
Много if. Не учили switch использовать?
Темы для WordPress. Русские WordPress шаблоны
Alexei91 вне форума Ответить с цитированием
Старый 20.01.2011, 16:25   #3
Sam Gold
Форумчанин
 
Аватар для Sam Gold
 
Регистрация: 26.03.2010
Сообщений: 538
По умолчанию

Вам надо создать консольный проект, а не оконное приложение.
Единственный способ стать умнее - играть с более умным противником.
Sam Gold вне форума Ответить с цитированием
Старый 20.01.2011, 21:20   #4
ZYRGiX
Пользователь
 
Аватар для ZYRGiX
 
Регистрация: 24.07.2007
Сообщений: 17
По умолчанию

Благодарю!
ZYRGiX вне форума Ответить с цитированием
Старый 30.01.2011, 04:26   #5
Славик__077
Пользователь
 
Регистрация: 29.01.2011
Сообщений: 15
По умолчанию

могу дать программу где ты вводиш три числа она выбирает максимальное
Славик__077 вне форума Ответить с цитированием
Старый 30.01.2011, 04:53   #6
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

Ваш код это ужас и мракобесие. Так проще:
Код:
#include <iostream>
#include <algorithm>

using namespace std;

int main()
{
    int a, b, c;
    cin >> a >> b >> c;
    cout << "Min: " << min(a, min(b, c)) << endl;
    cout << "Max: " << max(a, max(b, c)) << endl;
    cin.get();
}
Третий пункт не понял. Если два из них меньше нуля, что вывести?
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su

Последний раз редактировалось Obey-Kun; 30.01.2011 в 04:55.
Obey-Kun вне форума Ответить с цитированием
Старый 30.01.2011, 15:48   #7
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

Obey-Kun, видимо на первых курсах универа вы тоже не учились Задача не в том, чтобы найти максимальное и минимальное, а чтобы человек разобрался с операторами ветвления.
То же самое с задачей: введите число и переверните его наоборот. Например, 12345, на выходе будет 54321. Я сделала так: ввела число как строку, сделала ей reverse и вывела на экран. А на самом деле там нужно было вводить как число и делать через цикл.
Тем более, что у автора должно выводиться не само минимальное число, а буква, которая ему соответствует. Вы же так сделать не сможете своим min(a, min(b, c)).

ZYRGiX, я б еще на вашем месте cin >> s; убрала. Он там ну никак не нужен.
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
ACE Valery вне форума Ответить с цитированием
Старый 30.01.2011, 15:51   #8
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

Код:
#include <iostream>

using namespace std;

double min(double x, double y)
{
    if ( x < y ) {
        return x;
    } else {
        return y;
    }
}

double max(double x, double y)
{
    if ( x > y ) {
        return x;
    } else {
        return y;
    }
}


int main()
{
    int a, b, c;
    cin >> a >> b >> c;
    cout << "Min: " << min(a, min(b, c)) << endl;
    cout << "Max: " << max(a, max(b, c)) << endl;
    cin.get();
}
Вот с операторами ветвления.

Цитата:
Obey-Kun, видимо на первых курсах универа вы тоже не учились
Я геолог, у нас программирование не преподавали. Точнее, преподавали в одном семестре, но нашей группе не повезло с преподом, он оказался алкашом и забил на пары .
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su
Obey-Kun вне форума Ответить с цитированием
Старый 30.01.2011, 15:54   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну вот теперь у автора есть замечательные примеры, он может сравнить как писать красиво, и как лучше не писать (имею ввиду пример из методички)
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.01.2011, 16:04   #10
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

Насчёт букв не заметил. Если надо букву выводить (а также надо использовать if-else ветвление, и соответственно запрещено использовать switch, функции, тринарный оператор и, тем более, указатели на функции), то так:
Код:

#include <iostream>

using namespace std;

int main()
{
    int a, b, c;
    cin >> a >> b >> c;
    char tmp;

    if (a < b) {
        if (c < a) {
            tmp = 'c';
        } else {
            tmp = 'a';
        }
    } else if (c < b) {
        tmp = 'c';
    } else {
        tmp = 'b';
    }
        
    cout << "Min: " << tmp << endl;

    if (a > b) {
        if (c > a) {
            tmp = 'c';
        } else {
            tmp = 'a';
        }
    } else if (c > b) {
        tmp = 'c';
    } else {
        tmp = 'b';
    }

    cout << "Max: " << tmp << endl;
    cin.get();
}
А в изначальном коде ещё и логические ошибки, алгоритм нерабочий.
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su

Последний раз редактировалось Obey-Kun; 30.01.2011 в 16:14.
Obey-Kun вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
максимальное и минимальное значение заданных чисел солнышко777 Паскаль, Turbo Pascal, PascalABC.NET 1 28.09.2010 16:29
Максимальное и минимальное число из любой последовательности чисел Сергеич59 Фриланс 5 10.03.2010 18:47
эксель. найти максимальное и минимальное значение функции alex(21) Помощь студентам 2 07.03.2010 12:22
excel Определить максимальное и минимальное значение длины слов в таблице Nibbler Помощь студентам 0 05.12.2009 22:42
Определить максимальное/минимальное значение функции y=f(x) astrozombie Помощь студентам 2 16.02.2009 13:52