![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Мне нужно найти значение функции 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, да чтение в конце, что бы консолька не закрывалась ![]() |