codice:
#include <stdio.h>
float Divisione (float x, float y, float z);
int main (int argc, char *argv[]) {
float a=3, b=3, c=2;
float soluzione= Divisione (a, b, c);
if (fabs(c)>fabs(0.0+2.0e-10.0) ) // nota 1
{
float Divisione (a, b, c); // errore, stai ri-dichiarando la funzione in mezzo al main
printf ("%f*%f/%f e' uguale a %f\n" a, b, c, soluzione);
}
else if (c<0){
printf ("%f e' un numero negativo.\n" c);
}
else if (a&&b<0){
printf ("%f e %f sono numeri negativi.\n" a, b);
}
getchar();
return 0;
nota 1: I floating point vengono rappresentati con una certa precisione, che dipende
dal numero di bit che si usano per rappresentare la mantissa, ma anche dall' esponente, che più è alto, più "sacrifica" la precisione.
Errore che può aumentare con le varie operazioni che si fanno.
Allora c'è un errore sul dato reale, per cui non si fa il confronto direttamente dicendo "if(c!=0)", ma si controlla che sia al di fuori da un certo intervallo, tipo [0,0+], dove 0+ è "quasi zero".
A parte questi errori manca l' indentazione.
Dopo ogni graffa che si apre aggiungi 4 spazi, dopo ogni graffa che si chiude torni indietro di 4 spazi:
codice:
if(<condizione>)
{
<istruzioni>
<istruzioni>
}