Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Rätselecke » 31. Virtualrätsel (for Beginners)

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 <
010
20.06.2003, 17:31 Uhr
arkantos




C++:
#include <stdio.h>
#include <math.h>

int main()
{
int p, q;

printf("p eingeben: ");
scanf("%d", &p);

printf("\nq eingeben: ");
scanf("%d", &q);

if((p*p/4-q)==0)
{
     printf("Es gibt eine Nullstelle\n");
     printf("Nullstelle bei x1= %.2lf\n", (-p/2)+sqrt(p*p/4-q));
}

else if((p*p/4-q)<0)
     printf("Es gibt keine Nullstellen\n");
else
{
     printf("Es gibt 2 Nullstellen\n");
     printf("Nullstelle bei x1=%lf\n", (-p/2)+sqrt(p*p/4-q));
     printf("Nullstelle bei x2=%lf\n", (-p/2)-sqrt(p*p/4-q));
}

}



so besser?
--
schöne grüße,
arkantos
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
20.06.2003, 22:35 Uhr
virtual
Sexiest Bit alive
(Operator)


Ja, jetzt bin ih zufrieden.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
21.06.2003, 13:35 Uhr
LiLLy



Also bei mir gäbe es Probs, wenn ich bei der Verwendung den Tastaturpuffer nicht leere
(bei Win mit fflush(stdin)...
Sollte man doch grundsätzlich machen, oder?
s.auch 6.2. Probleme und ihre Behandlung mit scanf
unter www.pronix.de/C/standard_C/c_programmierung_6.shtml#2
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
21.06.2003, 21:32 Uhr
virtual
Sexiest Bit alive
(Operator)


@Lilly
Also das fflush(stdin) funktioniert nur auf bestimmten Platformen, wenn es auf Deiner funktioniert, dann kannst Du es natürlich so lassen, ist nur eben unportabel. Um der Frage vorweg zu kommen: mir ist derzeit kein portabeler Weg bekannt, das Problem zu umgehen.
Wer einen kennt, bitte sagen, ich wäre neugierig!
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
21.06.2003, 22:05 Uhr
~0xdeadbeef
Gast


@virtual: Bist du sicher? Ich dachte immer, fflush wäre ANSI und nur fpurge ist nicht portabel - außer natürlich zwischen BSD4.4-konformen Systemen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
21.06.2003, 22:12 Uhr
LiLLy



Hab ja geschrieben nur für Win(dows) ;o)
Hab auch gelesen, das es nicht Standard ist...

www.pronix.de/C/standard_C/c_programmierung_6.shtml#2
--> Wege zum Umgehen;o)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
016
22.06.2003, 07:28 Uhr
virtual
Sexiest Bit alive
(Operator)


@beefy
Gemäß Standard geht fflush nur für Outputstreams.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
017
26.06.2003, 12:49 Uhr
virtual
Sexiest Bit alive
(Operator)


Hallo,

wie angekündigt nach einer Zeit auch noch mal meine Lösung:

C++:
#include <iostream>
#include <cmath>

int main()
{
    long double p;
    long double q;

    //
    // Eingabe der parameter
    //
    std::cout<<"Bitte p eingeben: "<<std::flush;
    std::cin>>p;
    if (!cin)
    {
        std::cerr<<"p scheint keine gültige Fließkommazahl zu sein!"<<std::endl;
        return 1;
    }
    std::cout<<"Bitte q eingeben: "<<std::flush;
    std::cin>>q;
    if (!std::cin)
    {
        std::cerr<<"p scheint keine gültige Fließkommazahl zu sein!"<<std::endl;
        return 2;
    }

    //
    // Ausgabe der Gleichung
    //
    std::cout<<"Nullstellen von x*x";
    if (p!=0.0)
    {
        if (p>=0.0) std::cout<<'+';
        std::cout<<p<<"*x";
    }
    if (q!=0.0)
    {
        if (q>=0.0) std::cout<<'+';
        std::cout<<q;
    }
    std::cout<<std::endl;

    //
    // Diskriminate berechnen und ausgabe
    //
    long double d = (p*p/4.0)-q;

    if (d<0.0)
    {
        std::cout<<"Es gibt keine Nullstellen."<<std::endl;
    }else if (d == 0.0)
    {
        std::cout<<"Es gibt genau eine Nullstelle bei x="<<(-p/2.0)<<std::endl;
    }else
    {
        d = std::sqrt(d);
        std::cout<<"Es gibt zwei Nullstellen bei x1="<<(-p/2.0)-d
                 <<" und x2="<<(-p/2.0)+d<<std::endl;
    }

    return 0;
}


--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)

Dieser Post wurde am 26.06.2003 um 12:50 Uhr von virtual editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 <     [ Rätselecke ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: