Originariamente inviato da oregon
if (vettore[i-1]>= '0' && vettore[i-1]<=9)
... usi '0' da una parte e 9 dall'altra ... ti sembra corretto?
Grazie per avermi fatto notare l'errore.. ma continua a non funzionare.. mi restituice sempre 0.
Codice PHP:
#include <stdio.h>
#include <ctype.h>
int getline (char[]);
double atof (char[]);
double massimo (double);
double minimo (double);
int max=0; int min=10000; int z=0;
main()
{ char vettore [1000];
double mx,mn,k;
while ((getline (vettore)) > 0){
k=atof(vettore);
mx=massimo(k);
mn=minimo(k);}
printf ("Mim:%f\nMax:%f", mn,mx);
printf ("\n%d",z);
}
int getline (char vettore[])
{
int c,i=0;
while((c=getchar())!= EOF && c!= '\n')
vettore [i++]=c;
if (c=='\n')
vettore[i++]=c;
if (vettore[i-1]>= '0' && vettore[i-1]<='9')
z++;
vettore[i]= '\0';
return i;
return z;
}
double atof (char vettore[])
{
double val, power;
int i, sign;
for (i=0; isspace (vettore[i]); i++)
;
sign = (vettore[i] == '-')? -1 : 1;
if (vettore[i] == '+' || vettore[i] == '-')
i++;
for (val = 0.0; isdigit(vettore[i]); i++)
val = 10.0 * val + (vettore[i] - '0');
if (vettore[i] == '.')
;
for (power = 1.0; isdigit (vettore[i]); i++)
{
val = 10.0 * val + (vettore[i] - '0');
power *= 10.0;
}
return sign * val / power;
}
double massimo (double a)
{
if (a>max)
max=a;
return max;
}
double minimo (double a)
{
if (a<min)
min=a;
return min;
}