Другие языки программирования и технологии

Надо подправить программу С++.

Вы вводите 5 чисел, программа определяет максимальный и минимальный элементы и выдает их отношение. Программа написана правильно. Именно рекурсивная функция надо, нельзя использовать никаких массивов и всего в этом роде... лишь сравнение чисел как в программе.
Одно НО: надо же добавить что-то на случай если пользователь введет больше 5 чисел. в программе оно просто не берет во внимание остальные числа, кроме 5 первых. Надо вставить строчку что б в случае ввода больше 5 чисел, выводило на экран что-то типа-Ошибка, введите 5 чисел.
Пробовала много способов, но что-то никак))) помогите, кто может)
#include <iostream.h>
#include <conio.h>

float maximum (int x, int y, int z,int u, int i)
{float max=x;
if (y>max)
max=y;
if (z>max)
max=z;
if (u>max)
max=u;
if (i>max)
max=i;
return max;
}

float minimum(int x, int y, int z, int u, int i)
{float min=x;
if (y<min)> >a> >b> >c> >d> >e;
cout < < "\nMaximum= " <
Yogi Yogi
Yogi Yogi
521
Рекурсивная версия:

#include <iostream.h>
#include <limits.h>

void recmaxmin(int &mx, int &mn, int n = 5) {
    int v;
    if (n == 5) {
        cin >> v;
        mx = mn = v;
        recmaxmin(mx, mn, n - 1);
    } else if (n > 0) {
        cin >> v;
        if (v > mx) mx = v;
        if (v < mn) mn = v;
        recmaxmin(mx, mn, n - 1);
    }
}

int main() {
    cout << "numbers? ";
    int mx, mn;
    recmaxmin(mx, mn);
    cout << "max: " << mx << "; min: " << mn << endl;
    cout << "max/min: " << (double)mx / mn << endl;
    return 0;
}

> Одно НО: надо же добавить что-то на случай если пользователь введет больше 5 чисел
Не надо. Пусть вводит сколько хочет. Возьмет-то все равно первые пять.
Daniyar Kenesbaev
Daniyar Kenesbaev
54 711
Лучший ответ
Ганс S.t.a.l.k.e.r. месье знает толк в извращениях.
я не догадался, куда сюда рекурсию прикрутить =)
Yogi Yogi спасибо)))
выкладывай код на pastebin.com
молодец, оперативненько
1. нет рекурсии в твоей программе
2. при данном типе ввода - никак. потому что шестое ( и прочие) числа и не вводятся.
т. е. даже если ты нажмешь еще пару кнопок - программа не проигнорирует, а не узнает.
и это, в принципе, правильно.
ловить такую ситуацию - усложнять себе жизнь. например, считывая строку с числами через пробелы
3. а еще i в main лишняя
Yogi Yogi ой про i -точно))то я забыла удалить,пыталась как то циклами все сделать))это был аргумент для счетчика)
Yogi Yogi От провал, черт его пойми, что с той рекурсией делать( написала программу с массивом - все что надо там было - так нет же, надо простое сравнивание(((
Почему бы не сделать считывание в цикле?
Nikolay Raykov
Nikolay Raykov
442