Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Народ подскажите как правильно? 
:(
    Опции темы
Holy Max
Дата 9.10.2004, 18:43 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Народ подскажите как правильно использовать функицию min в С++, а то что то я не могу никак вычленить минимальное число из двух данных по типу min(z,x) и полученно е присвоить переменной MN.
Помогите плиз...
  Вверх
prankster
Дата 9.10.2004, 19:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 9.10.2004

Репутация: нет
Всего: нет



???
во-первых, это вроде макрос. И потом, в чем проблема? Неужели MN = min(z, x) не проходит?
PM MAIL ICQ   Вверх
Guest
Дата 9.10.2004, 19:27 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Compiling MAKS001.CPP:
Error MAKS001.CPP 15: Function 'min' should have a prototype
Warning MAKS001.CPP 17: 'mn' is assigned a value that is never used
вот че пишет мне а программа и задание такое.

Короче вот задача:
1. Даны действительные числа х, у, и z. Вычислить min2 (x + y + z / 2, xyz) +1.

А вот то что я накропал:

# include <iostream.h>
# include <conio.h>
# include <math.h>
# include <stdlib.h>
# include <stdio.h>
void main()
{ clrscr ();
float x,y,z,pr,pr1,mn;
cout <<"\n Dannaya programma vichislyaet formulu \n";
cout <<"\n Vvedite deistvitelnie chisla x, y, z \n";
cin >>x>>y>>z;
cout <<"\n"<<x<<"\n"<<y<<"\n"<<z<<"\n";
pr=(x+y+z)/2;pr1=x*y*z;
cout <<"\n"<<pr<<"\n"<<pr1<<"\n";
mn=min(pr,pr1);
getch();
}

Поправте если не сложно...
  Вверх
prankster
Дата 9.10.2004, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 9.10.2004

Репутация: нет
Всего: нет



глюки скорее всего потому, что переменные вещественного типа. В библиотеке math есть функции для сравнения вещественных переменных (если мне не изменяет память). Кстати, сравнивать такие переменные с помощью обычного больше-меньше не рекомендуется - лучше ввести константу, до какой точности сравниваешь. Короче, смотри math.h
PM MAIL ICQ   Вверх
prankster
Дата 9.10.2004, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 9.10.2004

Репутация: нет
Всего: нет



че-то я в этом math.h ничего не нашел smile.gif
Тогда можешь сам написать. Пример:
Код
#include <math.h>
#define EPS  1E-6
 bool fequal(float x, float y) {
 return fabs(x-y) < EPS;
}

PM MAIL ICQ   Вверх
Guest
Дата 9.10.2004, 20:36 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Блин вот если бы ты еще и с пояснениями писал совсем было бы клево...
А то нифига не понял..
  Вверх
prankster
Дата 9.10.2004, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 9.10.2004

Репутация: нет
Всего: нет



вводим константу EPS - до какого знака после запятой хотим сравнивать наши дробные числа (в примере - до шестого). Далее, чтобы, например, узнать равны ли наши числа с точностью до EPS знака после запятой, находим их разность, берем от нее модуль (функция fabs из модуля math.h) и уже эту разность сравниваем с нашей константой.
Пример:
числа 0,000000123 и 0,000000156 процедура будет считать равными. Понятно?
PM MAIL ICQ   Вверх
mr.DUDA
Дата 10.10.2004, 09:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 25
Всего: 232



Сделай #include "minmax.h". smile.gif

З.Ы. или используй вот это:
Код
#ifndef max
#define max(a,b)            (((a) > (b)) ? (a) : (b))
#endif

#ifndef min
#define min(a,b)            (((a) < (b)) ? (a) : (b))
#endif



--------------------
user posted image
PM MAIL WWW   Вверх
LuckLess
Дата 10.10.2004, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 15.9.2004

Репутация: 1
Всего: 1



Да ну вы че? Можно гораздо проще , зачем вам условный оператор??
mn=(pr>pr1)?pr1:pr;
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0479 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.