Makro



  • Kann mir jemand sagen wieso das mit dem Makro nicht funktioniert?

    /********************************************
    ********Berechnung der Lorentz-Kraft*********
    ********************************************/
    
    //Datum: 14.07.2014
    //Autor: Andreas Lauer
    //Thema: Berechnung der Lorentz-Kraft
    
    #include <iostream>
    #define e 1,602176565E-19
    using namespace std;
    
    int main()
    {
        double v[3];
        double B[3];
        double Fl[3];
        double erg[3];
        cout<<"Bitte geben Sie die Geschwindigkeit in x,y und z - Koordinaten in  [m/s] an: "<<endl;
        for(int i=0; i<3; i++)
        {
                cin>>v[i];
        }
        cout<<"Bitte geben Sie die Magnetische Flussdichte in x,y und z - Koordinaten in [Ws/Am²] an: "<<endl;
        for(int i=0; i<3; i++)
        {
                cin>>B[i];
        }
        Fl[0]=v[1]*B[2]-v[2]*B[1];
        Fl[1]=v[2]*B[0]-v[0]*B[2];
        Fl[2]=v[0]*B[1]-v[1]*B[0];
        cout<<"Das Lorentz-Kraft ist: "<<endl;
        erg[0]=-Fl[0]*e;
        erg[1]=-Fl[1]*e;
        erg[2]=-Fl[2]*e;
        cout<<erg[0]<<endl;
        cout<<erg[1]<<endl;
        cout<<erg[2]<<endl;
    
        return 0;
    }
    


  • 1,602176565E-19
    

    ist nicht das gleiche wie

    1.602176565E-19
    

    Du willst das zweite. Das erste hat den Komma-Operator drin, das macht etwas anderes, ergibt aber in diesem Fall interessanterweise auch validen Code. 😉

    Nur so nebenbei, Makros würde ich für sowas in C++ nicht verwenden. Bei

    const double E = 1,602176565E-19;
    

    wäre das aufgefallen. 🙂



  • Nimm einen Dezimalpunkt:

    mhm ... zu spät 🙂



  • dummer Fehler danke



  • const double E = (1,602176565E-19);
    

    🤡


Log in to reply