|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Функция min(max(x,y), max(y,z), x+y+z)
Мне нужно найти значение функции min(max(x,y), max(y,z), x+y+z),
где x, y, z - вещественные числа. Программа выглядит так. Код:
#include <stdio.h> double max(double x, double y) { max = x; if(y > max) { max = y; } return max; } double max1( double y, double z) { max1 = y; if(z > max1) { max1 = z; } return max1; } double sum(double x, double y, double z) { return x + y + z; } double min(double max, double max1, double sum) { min = max; if(max1 < min) { min = max1; } if(sum < min) { min = sum; } return min; } double max(double, double); double max1(double, double); double sum(double, double); double min(double, double); int main() { double x, y, z; scanf("%lf %lf %lf", &x, &y, &z); printf("%.2lf\n", min(max(x, y), max1(y, z), sum(x, y, z)); return 0; } |
#2
|
|||
|
|||
>Я знаю, что для вещественных чисел нельзя использовать оператор return
Откуда Вы это "знаете" ? |
#3
|
|||
|
|||
Цитата:
|
#4
|
|||
|
|||
Цитата:
М-м-м... а вообще автор понимает C/C++ и принципы программирования? Я что-то по приведенному куску не увидел. Код:
#include<stdio.h> double min(double a,b) { return (a<b) ? a : b; } double max(double a,b) { return (a>b) ? a : b; } void main() { double x ,y ,z; scanf("%lf %lf %lf", &x, &y, &z); printf("%1f\n",min(x+y+z,min(max(x,y),max(y,z))); return; } |
#5
|
|||
|
|||
Цитата:
|
#6
|
|||
|
|||
Цитата:
Как не работает? Нет под рукой С компилятора. Да там и от компилятора могут быть зависимости некоторые. |
#7
|
|||
|
|||
Цитата:
Вот нашел online компилятор. Немного подправил (забыл скобку, и описание функции gcc требует указания типов везде): Код:
#include<stdio.h> double min(double a, double b) { return (a<b) ? a : b; } double max(double a, double b) { return (a>b) ? a : b; } int main() { double x, y, z; scanf("%f %f %f", &x, &y, &z); printf("%f\n",min(x+y+z,min(max(x,y),max(y,z)))); return 0; } |
#8
|
|||
|
|||
Даже с открытой скобкой программа не работает.
|
#9
|
|||
|
|||
Цитата:
Еще раз повторяю вопрос - как не работает? Последняя версия на он-лайн компиляторе работает, проверено (компилятор gcc). Далее надо править кривые руки того. у кого не работает... |
#10
|
|||
|
|||
В Visual Studio не работает.
|
#11
|
||||
|
||||
Ну вот вам под консольный проект VS2008
Код:
#include "stdafx.h" #include "stdio.h" #include "conio.h" double min(double a, double b) {return (a<b) ? a : b;} double max(double a, double b) {return (a>b) ? a : b;} int main() { double x,y,z; scanf("%f %f %f", &x, &y, &z); printf("%f\n", min(x+y+z,min(max(x,y),max(y,z)))); getch(); return 0; } ПС: Правда он мне кажется бред считает, но... главное работает Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#12
|
|||
|
|||
Цитата:
сичтает ровно то, что ТС заказал. Может и не бред, если учитывать отрицательные числа. Хотя, явно лаба какая-то для начинающих сишников Пора, наверное, делать "Код на шару" в C/C++ разделе. ЗЫ. Моя тоже работает как я вижу, ты, вроде, только инклуды добавил под VC, да чтение в конце, что бы консолька не закрывалась |