tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
12
ZUGRIFFE
421
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Samson22k Samson22k ist offline Grünschnabel
    Registriert seit
    Oct 2009
    Beiträge
    2
    Hi Leute,

    Ich Programmiere erst seid kurzem.
    Mein Problem ist folgendes :

    Ich möchte ein programm schreiben mit dem ich Kartesische in Polarkoordinaten umrechnen kann. Das Programm:

    #include <stdio.h>
    #include <math.h>

    int main(void)
    {

    double y, x, bogenmass;

    printf("Bitte geben sie die Abszisse ein");
    scanf("%d\n", &x);

    printf("Bitte geben sie die Ordinate ein");
    scanf("%d\n", &y);

    bogenmass = double atan2(double y, double x)/180*3.1215926535;


    printf("Rho = %d", bogenmass);


    return 0;
    }
    Das Problem ist, dass beim Compilieren immer "error C2062: type 'double' unexpected" kommt. Kann mir jemand erklären warum sich der Quelltext nicht compilieren lässt ? Was muss ich ändern, damit das Programm läuft ?

    gruß
     

  2. #2
    Avatar von Enumerator
    Enumerator Enumerator ist offline Mitglied Kamel
    Registriert seit
    Jan 2007
    Ort
    Schreibtisch
    Beiträge
    525
    Blog-Einträge
    2
    Hi!

    Versuch's mal so und finde heraus, was bei Dir nicht gepasst hat:
    Code C++:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    
    #include <cstdio>
    #include <cmath>
     
    int main(void)
    {
        double y, x, bogenmass;
     
        printf("Bitte geben sie die Abszisse ein ");
        scanf("%lf", &x);
     
        printf("Bitte geben sie die Ordinate ein ");
        scanf("%lf", &y);
     
        bogenmass = atan2(y, x)/180*3.1215926535;
     
     
        printf("Rho = %lf\n", bogenmass);
     
     
        return 0;
    }

    Gruß
    Enum
     
    Zitat Zitat von Aba Assa
    "Zitate sind so etwas wie Outsourcing des Geistes."
    just-lyrics.org :: my-lyrics.org

  3. #3
    Samson22k Samson22k ist offline Grünschnabel
    Registriert seit
    Oct 2009
    Beiträge
    2
    Vielen dank für dein schnelle Hilfe ....

    Jetzt läuft das Programm auch ! Waren wohl einfach zu viele double

    Danke nochmal !

    gruß
     

  4. #4
    Avatar von Enumerator
    Enumerator Enumerator ist offline Mitglied Kamel
    Registriert seit
    Jan 2007
    Ort
    Schreibtisch
    Beiträge
    525
    Blog-Einträge
    2
    Kein Problem.

    Wenn ich noch eine Anmerkung machen darf:
    Gewöhn' Dir am besten gleich an deinen Quellcode mit -Wall in den Compiler zu jagen - oder wie auch immer man bei Deinem Exemplar alle Warnungen anschaltet.
    Und ignoriere diese Warnungen nicht!

    Dann hättest Du gleich gemerkt, dass das Formaf für printf und scanf nicht passt...

    Gruß
    Enum
     
    Zitat Zitat von Aba Assa
    "Zitate sind so etwas wie Outsourcing des Geistes."
    just-lyrics.org :: my-lyrics.org

  5. #5
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Hi.
    Zitat Zitat von Enumerator Beitrag anzeigen
    Gewöhn' Dir am besten gleich an deinen Quellcode mit -Wall in den Compiler zu jagen - oder wie auch immer man bei Deinem Exemplar alle Warnungen anschaltet.
    Und ignoriere diese Warnungen nicht!

    Dann hättest Du gleich gemerkt, dass das Formaf für printf und scanf nicht passt...
    Es gibt aber keinen Formatspezifierer %lf für printf in ISO C/C++. Ein float wird automatisch in double konvertiert wenn er an eine Funktion mit variabler Anzahl von Argumenten übergeben wird. (-pedantic Option einschalten )

    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  6. #6
    Avatar von Enumerator
    Enumerator Enumerator ist offline Mitglied Kamel
    Registriert seit
    Jan 2007
    Ort
    Schreibtisch
    Beiträge
    525
    Blog-Einträge
    2
    Zitat Zitat von deepthroat Beitrag anzeigen
    Es gibt aber keinen Formatspezifierer %lf für printf in ISO C/C++.
    Und wieder was gelernt.
     
    Zitat Zitat von Aba Assa
    "Zitate sind so etwas wie Outsourcing des Geistes."
    just-lyrics.org :: my-lyrics.org

  7. #7
    Onkel Schuppig Onkel Schuppig ist offline Mitglied Gold
    Registriert seit
    Apr 2005
    Beiträge
    191
    Bleibt noch zu erwähnen, dass Pi 3.1415... ist und nicht 3.1215...
     
    Grüße OS

  8. #8
    Avatar von Online-Skater
    Online-Skater Online-Skater ist offline Mitglied Brillant
    Registriert seit
    Sep 2004
    Ort
    Rostock
    Beiträge
    891
    Genau, und das man für konstante Zahlen auch konstante Variablen benutzen sollte, damit bei Wiederverwendung nur an einer Stelle etwas geändert werden muss.
    Code c:
    1
    2
    3
    
    #define PI 3.1415
    // oder
    const float PI = 3.1415;

    mfg
     

  9. #9
    Avatar von Enumerator
    Enumerator Enumerator ist offline Mitglied Kamel
    Registriert seit
    Jan 2007
    Ort
    Schreibtisch
    Beiträge
    525
    Blog-Einträge
    2
    Zitat Zitat von deepthroat Beitrag anzeigen
    Hi.
    Es gibt aber keinen Formatspezifierer %lf für printf in ISO C/C++. Ein float wird automatisch in double konvertiert wenn er an eine Funktion mit variabler Anzahl von Argumenten übergeben wird. (-pedantic Option einschalten )

    Gruß
    Hm, klein Enum ist gerade bei der Gute-Nacht Lektüre aufgefallen...
    Zitat Zitat von Rationale For ISO C, Rev. 5.1, April 2003
    "use of the l modifier with floating conventions was added in C89"
    ... und er schließt daraus, dass das kleine l zwar spezifiziert aber nicht von allem Compilern implementiert und auch nicht zwingend erforderlich ist. Deswegen gibt's wohl ohne -pedantic auch nur eine Warnung und keine Fehlermeldung.

    Gruß
    Enum
     
    Zitat Zitat von Aba Assa
    "Zitate sind so etwas wie Outsourcing des Geistes."
    just-lyrics.org :: my-lyrics.org

  10. #10
    Avatar von saftmeister
    saftmeister saftmeister ist offline Der Saft sei mit dir
    tutorials.de Premium-User
    Registriert seit
    May 2006
    Ort
    There is no place like 127.0.0.1
    Beiträge
    3.516
    Zitat Zitat von Online-Skater Beitrag anzeigen
    konstante Variablen
    *LOL* Darf ich das zitieren?
     
    Grüße
    --
    Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)

  11. #11
    Avatar von Online-Skater
    Online-Skater Online-Skater ist offline Mitglied Brillant
    Registriert seit
    Sep 2004
    Ort
    Rostock
    Beiträge
    891
    Ja ziemlich ungeschickt ausgedrückt. Sagen wir einfach nur Konstanten dazu
     

  12. #12
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Hi.
    Zitat Zitat von Enumerator Beitrag anzeigen
    Hm, klein Enum ist gerade bei der Gute-Nacht Lektüre aufgefallen... ... und er schließt daraus, dass das kleine l zwar spezifiziert aber nicht von allem Compilern implementiert und auch nicht zwingend erforderlich ist.
    Wenn du schon zitierst, dann solltest du das wichtigste nicht weglassen und auch korrekt den Inhalt wiedergeben:
    7.19.6.1 The fprintf function
    Use of the L modifier with floating conversions was added in C89 to deal with formatted output of the long double type.
    Erstens geht es hier um das große L und zweitens wird ja gesagt, das es sich dann um eine long double Konvertierung handelt. Das bedeutet wenn ein Compiler den Typ "long double" unterstützt sollte er auch den %Lf Spezifizierer unterstützen. Von einem %lf ist trotzdem keine Rede.

    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  13. #13
    Avatar von Enumerator
    Enumerator Enumerator ist offline Mitglied Kamel
    Registriert seit
    Jan 2007
    Ort
    Schreibtisch
    Beiträge
    525
    Blog-Einträge
    2
    Gut das wir das geklärt haben
     
    Zitat Zitat von Aba Assa
    "Zitate sind so etwas wie Outsourcing des Geistes."
    just-lyrics.org :: my-lyrics.org

Ähnliche Themen

  1. Variablen Deklaration...
    Von SonMiko im Forum Flash Plattform
    Antworten: 1
    Letzter Beitrag: 23.03.06, 17:09
  2. Deklaration von variablen
    Von SiS-Shadowman im Forum C/C++
    Antworten: 22
    Letzter Beitrag: 15.04.05, 21:12
  3. Deklaration von variablen
    Von SiS-Shadowman im Forum VisualStudio & MFC
    Antworten: 9
    Letzter Beitrag: 14.04.05, 23:45
  4. Externe Variablen Deklaration
    Von Matthias_J im Forum Visual Basic 6.0
    Antworten: 2
    Letzter Beitrag: 21.02.05, 08:39
  5. Variablen deklaration.
    Von EM-Autotechnik im Forum PHP
    Antworten: 2
    Letzter Beitrag: 08.09.03, 20:23