Ecco una versione che funziona.
- sii un po' meno generoso con l'utilizzo di parole riservate, per es 'min' e 'max'
- double
max =
max(a, b, c); non puo' funzionare!
- prova anche con argomenti parzialmente uguali, tipo 12, 12, 15
- compila il tuo code prima di pubblicarlo qui; il tuo compiler ti darà messaggi importanti.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#pragma warn(disable:2216) // retval never used
#pragma warn(disable:2118) // para not referenced
#pragma comment(linker, "/subsystem:console" )
double min_la_tua (double a, double b, double c) {
double _min; // Local '_min' is potentially used without being initialized
if(a < b && a < c) {
_min = a;
}
if(b < a && b < c) {
_min = b;
}
if(c < a && c < b) {
_min = c;
}
return _min;
}
double max (double a, double b, double c) {
double _max = a;
if (b > _max) _max = b;
if (c > _max) _max = c;
return _max;
}
double min (double a, double b, double c) {
double _min = a;
if (b < _min) _min = b;
if (c < _min) _min = c;
return _min;
}
double mid(double a, double b, double c) {
double _max = max(a, b, c);
double _min = min(a, b, c);
double _mid = c;
if (a < _max && a > _min) _mid = a;
if (b < _max && b > _min) _mid = b;
// non necessario: if (c < _max && c > _min) _mid = c;
return _mid;
}
int main(int argc, char *argv[]) {
double a, b, c, max_, min_, mid_;
a = atof(argv[1]);
b = atof(argv[2]);
c = atof(argv[3]);
max_ = max(a, b, c);
min_ = min(a, b, c);
mid_ = mid(a, b, c);
printf("Il MAX e' %f\n", max_);
printf("Il min e' %f\n", min_);
printf("Il Med e' %f\n", mid_);
_getch();
return 0;
}