| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Народ подскажите как правильно? |
| Автор: Holy Max 9.10.2004, 18:43 |
| Народ подскажите как правильно использовать функицию min в С++, а то что то я не могу никак вычленить минимальное число из двух данных по типу min(z,x) и полученно е присвоить переменной MN. Помогите плиз... |
| Автор: prankster 9.10.2004, 19:14 |
| ??? во-первых, это вроде макрос. И потом, в чем проблема? Неужели MN = min(z, x) не проходит? |
| Автор: Guest 9.10.2004, 19:27 |
| 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 |
| глюки скорее всего потому, что переменные вещественного типа. В библиотеке math есть функции для сравнения вещественных переменных (если мне не изменяет память). Кстати, сравнивать такие переменные с помощью обычного больше-меньше не рекомендуется - лучше ввести константу, до какой точности сравниваешь. Короче, смотри math.h |
| Автор: prankster 9.10.2004, 20:09 | ||
| че-то я в этом math.h ничего не нашел Тогда можешь сам написать. Пример:
|
| Автор: Guest 9.10.2004, 20:36 |
| Блин вот если бы ты еще и с пояснениями писал совсем было бы клево... А то нифига не понял.. |
| Автор: prankster 9.10.2004, 20:50 |
| вводим константу EPS - до какого знака после запятой хотим сравнивать наши дробные числа (в примере - до шестого). Далее, чтобы, например, узнать равны ли наши числа с точностью до EPS знака после запятой, находим их разность, берем от нее модуль (функция fabs из модуля math.h) и уже эту разность сравниваем с нашей константой. Пример: числа 0,000000123 и 0,000000156 процедура будет считать равными. Понятно? |
| Автор: mr.DUDA 10.10.2004, 09:45 | ||
| Сделай #include "minmax.h". З.Ы. или используй вот это:
|
| Автор: LuckLess 10.10.2004, 12:34 |
| Да ну вы че? Можно гораздо проще , зачем вам условный оператор?? mn=(pr>pr1)?pr1:pr; |