Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
Anfaenger

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - C
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
logo



Anmeldungsdatum: 06.03.2003
Beiträge: 20

BeitragVerfasst am: 10. Dez 2003 14:30   Titel: Anfaenger

Hallo,

ich moechte erreichen, dass bei einer Divisionabfrage entweder die Ausgabe kommt Resultat gleich 0, wenn der Zaehler gleich 0 ist oder falsche Eingabe wenn der Nenner gleich 0 ist.
Doch bei dem Programm bekomme ich eine nichtnachvollziehbare Ausgabe:

#include<stdio.h>
#include<stdlib.h>

int main()
{
float x,y,z;

printf("2 Floatzahlen eingeben:
");
scanf("%g %g", &x, &y);

if(x>y)
z=x/y;
else if(x==0. || y==0.)
{
if(!x)
{
z=0;
}
else
{
printf("Nulldivision nicht moeglich!
");
exit(10);
}
}
else
z=y/x;

printf("Resultat: %g
", z);
exit(0);
}

bis bald
Andreas
 
Benutzer-Profile anzeigen Private Nachricht senden

Tom
Gast





BeitragVerfasst am: 10. Dez 2003 19:02   Titel: Re: Anfaenger

Mal auf die Schnelle... probiers mal hiermit

#include<stdio.h>
#include<stdlib.h>

int main()
{
float x,y,z;


printf("2 Floatzahlen eingeben: ");
scanf("%g %g", &x, &y);

if((x>y) && (y!=0.))
z=x/y;
else if(x==0. || y==0.)
{
if((!x)&&(y!=0.))
{
z=0;
}
else
{
printf("Nulldivision nicht moeglich! ");
exit(10);
}
}
else
z=y/x;

printf("Resultat: %g ", z);
exit(0);
}


Aber der Vergleich von Fliesskommazahlen auf die Art "x == 0." hinkt etwas. Besser, wenn du überprüfst, ob die absolute Differenz zwischen x,y und 0.0 kleiner als ein maschinenabhängiger Wert ist.
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - C Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy