Вы вводите 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= " <
Другие языки программирования и технологии
Надо подправить программу С++.
Рекурсивная версия:
#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 чисел
Не надо. Пусть вводит сколько хочет. Возьмет-то все равно первые пять.
#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 чисел
Не надо. Пусть вводит сколько хочет. Возьмет-то все равно первые пять.
выкладывай код на pastebin.com
молодец, оперативненько
1. нет рекурсии в твоей программе
2. при данном типе ввода - никак. потому что шестое ( и прочие) числа и не вводятся.
т. е. даже если ты нажмешь еще пару кнопок - программа не проигнорирует, а не узнает.
и это, в принципе, правильно.
ловить такую ситуацию - усложнять себе жизнь. например, считывая строку с числами через пробелы
3. а еще i в main лишняя
молодец, оперативненько
1. нет рекурсии в твоей программе
2. при данном типе ввода - никак. потому что шестое ( и прочие) числа и не вводятся.
т. е. даже если ты нажмешь еще пару кнопок - программа не проигнорирует, а не узнает.
и это, в принципе, правильно.
ловить такую ситуацию - усложнять себе жизнь. например, считывая строку с числами через пробелы
3. а еще i в main лишняя
Почему бы не сделать считывание в цикле?
Похожие вопросы
- Нужно подправить программу в Pascal на одномерные массивы.
- подправить программу
- Ребят, помогите подправить программу на С++
- Посоветуйте мне, пожалуйста, что где подправить, чтобы стало ещё красивее? ===>
- Создание программ.
- Продаю программу с исходниками на Visual Basic 2008 за 50 руб.
- Помогите написать программу со switch в СИ
- Подскажите пожалуйста, на каком языке написана программа, на С или C++
- Помогите пожалуйста подправить процедуру Pascal
- а можно ли в cms движке что то самому подправить ручками или только средствами управления движка
я не догадался, куда сюда рекурсию прикрутить =)