Problem bei der "Mitternachtsformel"

Dieses Thema im Forum "C/C++" wurde erstellt von Aracon, 02.08.2006.

  1. Aracon

    Aracon Routinier

    Dabei seit:
    12.10.2003
    Beiträge:
    438
    Zustimmungen:
    0
    Hi ich will ein kleines Programm zur Übung schreiben, es soll mir die Lösungen der Mitternachtsformel berechnen (http://de.wikipedia.org/wiki/Mitternachtsformel)

    Aber ab und an kommt nur Müll raus. Hier der Code:
    Code:
    #include	<iostream>
    #include	<string>
    #include	<cmath>
    using namespace std;
    
    float a,b,c;
    float x1, x2, *px1, *px2;
    bool temp;
    
    bool check(float a, float b, float c);
    float mitter(float a, float b, float c);
    int get();
    
    double hilf = sqrt(b*b - 4*a*c);
    
    int main()
    {
    	get();
    	check(a, b, c);
    	if(temp ==  0)
    	{	cout	<<	"Sorry es gibt keine Lösung!"	<<	endl;
    		return 0;
    	}
    	else
    		mitter(a, b, c);
    		cout	<<	"Die Lösungen sind:"	<<	endl	<< *px1	<< "und" <<	*px2	<<	endl;
    		return 0;
    }
    
    
    
    int get()
    {
    	cout	<<	"a:"	<<	endl;
    	cin	>> 	a;
    	cout	<<	"b:"	<<	endl;
    	cin	>>	b;
    	cout	<<	"c:"	<<	endl;
    	cin	>>	c;
    }
    
    bool check(float a, float b, float c)
    {
    	if(hilf*hilf < 0)
    		return temp = 0;
    	else
    		return temp = 1;
    }
    
    
    
    float mitter(float a, float b, float c)
    {
    	x1 =  ((-b + hilf) / (2*a));
    	x2 =  ((-b - hilf) / (2*a));
    	px1 = &x1;
    	px2 = &x2;
    } 
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. Andrea

    Andrea Routinier

    Dabei seit:
    01.12.2003
    Beiträge:
    418
    Zustimmungen:
    0
    Ort:
    Bielefeld
    Hi,

    du hast 2 Fehler gemacht.

    1. Du hast hilf vor dem get berechnet, da sind aber alle Werte null. Daher kommt nix sinnvolles raus. Also vor main nur double hilf; und nach dem get() dann
    hilf = sqrt(b*b - 4*a*c);

    2. Wenn du die Wurzel aus einer negativen Zahl ziehst, ist das Ergebnis nicht kleiner null und hilf*hilf kann NIE null werden. An der Stelle nimmst du einfach noch ein hilf2 oder so, mit
    hilf2 = b*b - 4*a*c;
    auch nach dem get. Wenn du dann abfragst, ob hilf2 kleiner 0 ist (statt hilf*hilf) funktioniert es mit den Wiki-Beispielen bei mir.

    Das return temp=0 kannst du auch durch return 0 ersetzen und dafuer den Funktionsaufruf so machen
    temp = check(a, b, c);
    schliesslich soll deine Funktion ja ein bool zurueckgeben.

    Ich hoffe mal, jetzt klappt es!
     
Thema:

Problem bei der "Mitternachtsformel"

Die Seite wird geladen...

Problem bei der "Mitternachtsformel" - Ähnliche Themen

  1. Virtualboxproblem

    Virtualboxproblem: Hallo Folgnedes Problem: Ich kann ohne Probleme In Debian-Sid, 64Bit und virtualbox-dkms Unixoide installieren, wenn es sich um eine...
  2. grub-pc Probleme bei upgrade

    grub-pc Probleme bei upgrade: Hallo, ich habe beim dist-upgrade folgendes Problem: ---------- Nach dieser Operation werden 0 B Plattenplatz zusätzlich benutzt. Trigger für...
  3. Problem bei apt-get upgrade (Kali 2.0)

    Problem bei apt-get upgrade (Kali 2.0): Hi, seit paar Tagen habe ich einige Probs. Dachte es sei mal an der Zeit für ein Update und nun tauchen da einige Fehler auf: Es müssen noch 0 B...
  4. Probleme mit YUM

    Probleme mit YUM: Hallo, ich habe CentOs 7 als Dualboot mit Windows 7 auf einen Dell Latitude E5510 installiert. Dies hat soweit auch alles geklappt. Leider habe...
  5. Problem mit Win-Zugriff auf SAMBA

    Problem mit Win-Zugriff auf SAMBA: Hallo rundherum, vielleicht hat jemand eine Idee... Habe jetzt schon 1 1/2 Tage damit verbraten und den Fehler nicht gefunden. Problem:...