Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Проблема вывода результата

2.2K
01 ноября 2006 года
MagicPRO
100 / / 02.10.2006
Эта программа должна находить min и max введенных чисел и отношение max к min:
#include <iostream.h>
#include <stdio.h>

void getMinMax(int min, int max)
{
int n;
cout<<"\nVvedite chislo: ";
cin>>n;
if(n <= 0) return;
if( min < n ) min = n;
if( max > n ) max = n;

getMinMax(min, max);
}
void main(void)

{
int min, max, i;
i=max/min;
getMinMax(min, max);
cout<<"\nMin = "<< min << "\nMax = "<< max << "\nOtnoshenie: " << i << endl;
}
1. Но в результате получается min = 1792, max = 1816, причем если ввожу любое количество цифр и всегда разные значения.
2. Куда на прописать задержку getch()ем?
3.0K
01 ноября 2006 года
Мerlin
267 / / 25.07.2006
Для того, чтобы использовать getch(), нужно подключить conio.h
#include <conio.h>

getch() пишется перед последней }

У тебя min и max не проинициализированы.
min можно проинициализировать с 0x3FFFFF, max = 0;

Отношение i=max/min вычисляешь раньше, чем вводятся числа.

if( min < n ) min = n;
if( max > n ) max = n;

Нужно как раз наоборот, напр if( min [color=red]>[/color] n ) min = n;

В функции getMinMax можешь присваивать любые значения параметрам min, max. Переменные min, max те значения не получат.
Для этого нужно бы определить getMinMax как

void getMinMax(int &min, int &max)
2.2K
01 ноября 2006 года
MagicPRO
100 / / 02.10.2006
Код:
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
 
void getMinMax(int &min, int &max)
{
int n,i;
i= max/min;
cout<<"\nVvedite chislo: ";
cin>>n;
if(n <= 0) return;
 
if( min > n ) min = n;
if( max < n ) max = n;
 
getMinMax(min, max);
 
void main(void)
 
int min = 0x3FFFFFF;
int max = 0;
getMinMax(min, max);
cout<<"\nMin = "<< min << "\nMax = "<< max << "\nOtnoshenie: " << i << endl;
getch();
}


но теперь выписует 2 ошибки:
1) int min = 0x3FFFFF; - declaration syntax error
2) int max = 0;- multiple declaration for "max"
3.0K
01 ноября 2006 года
Мerlin
267 / / 25.07.2006
Код:
#include <iostream.h>
#include <conio.h>
#include <stdio.h>

void getMinMax(int &min, int &max)
{
int n;
cout<<"\nVvedite chislo: ";
cin>>n;
if(n <= 0) return;

if( min > n ) min = n;
if( max < n ) max = n;

getMinMax(min, max);
}
void main(void)
{
int min = 0x3FFFFFF;
int max = 0;
getMinMax(min, max);
double i = max/min;
cout<<"\nMin = "<< min << "\nMax = "<< max << "\nOtnoshenie: " << i << endl;
getch();
}
2.2K
01 ноября 2006 года
MagicPRO
100 / / 02.10.2006
Спасибо огромное!
А если не трудно, обьясни что значит проинициализировать?
3.0K
01 ноября 2006 года
Мerlin
267 / / 25.07.2006
Присвоить переменной начальное значение. Иначе переменная будет содержать какой-то мусор. Напр. 1792, или 1816.
242
01 ноября 2006 года
Оlga
2.2K / / 04.02.2006
- не надо в тэгах пробелы писать[/COLOR]
3.0K
01 ноября 2006 года
Мerlin
267 / / 25.07.2006
Вообще-то я нигде не вижу в своем коде 0х3F FF FF FF.
Но не это главное. В ту прогу, чтоб все было нормально нужно бы дописать после
вызова getMinMax
if(max==0)
cout << "Вы не ввели ни одно положительное число." << endl;
else
{
...
242
01 ноября 2006 года
Оlga
2.2K / / 04.02.2006
ну тогда наверно стоит проверить что и min != 0, а то могут быть проблемы у студента, хотя такии мелочи можно оставлять на дороботку, чтобы самостоятельно думали.
зы неужели серьезно не видно какое первоначальное значение вы нечаянно задали переменной min при инициализации в main()
3
01 ноября 2006 года
Green
4.8K / / 20.01.2000
MagicPRO, а рекурсия в твоем примере принципиальна?
Дело в том, что она тут не просто излишне, но и вредна.
Сделай цикл, будет и проще, и читабельнее, и безглючнее.
242
01 ноября 2006 года
Оlga
2.2K / / 04.02.2006
принципиальна, учитель требует =), нас тоже на всякой ерунде натаскивали.
3
01 ноября 2006 года
Green
4.8K / / 20.01.2000
Печально, что учат применять, а где не следует применять, не учат. :(
242
01 ноября 2006 года
Оlga
2.2K / / 04.02.2006
все нетак страшно, нас покрайней мере не учили применять рекурсию в таких задачах, но:
1) готовили к гос. экзаменам, там если обязуют решать задачу рекурсией - не поспоришь, проверка знаний
2) на простых примерах показывали принцип работы рекурсивных функций, и заодно могли показать нерекурсивное решение
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог