none
c2659 RRS feed

  • Frage

  • hallo ich habe mit folgendem abschnitt probleme:

    #include "calc.h"

    double Betrag (double n)
    {
        double i;
        Betrag = sqrt(i*i);

     

    Fehler    1    error C2659: "=": Funktion als linker Operand.

    was ist mit dieser fehlermeldung genau gemeint und was muss ich ändern?

    Dienstag, 24. Mai 2011 16:32

Antworten

  • double Betrag (double n)
    {
         double i;      Betrag = sqrt(i*i);

    So hat man in VB programmiert... in C sieht das so aus:

    double Betrag (double n)
    {
      return sqrt(n*n);
    }

    Jochen Kalmbach (MVP VC++)
    Mittwoch, 25. Mai 2011 04:45
  • Betrag wurde nicht als Variable definiert,

       double Betrag, i;
       Betrag = sqrt(i*i);

    müsste dann gehen.


    VisualCPlusPlus
    Dienstag, 24. Mai 2011 18:25

Alle Antworten

  • Betrag wurde nicht als Variable definiert,

       double Betrag, i;
       Betrag = sqrt(i*i);

    müsste dann gehen.


    VisualCPlusPlus
    Dienstag, 24. Mai 2011 18:25
  • double Betrag (double n)
    {
         double i;      Betrag = sqrt(i*i);

    So hat man in VB programmiert... in C sieht das so aus:

    double Betrag (double n)
    {
      return sqrt(n*n);
    }

    Jochen Kalmbach (MVP VC++)
    Mittwoch, 25. Mai 2011 04:45
  • Hallo Forum

    Mathematisch wohl richtig, für Computeranwendungen rollt es mir dabei die Zehennägel auf. Eine Zahl zu quadrieren, dann die Wurzel zu ziehen, nur um den Betrag zu bekommen!

    Früher, als es noch keine im Hauptprozessor integrierten Floating-Point-Units gab, wäre man für diese Berechnung wohl gesteinigt worden, da im Grunde nur das Vorzeichenbit der Fließkommazahl (siehe IEEE Zahlenformate) ausmaskiert werden muss. Natürlich gibt's sowas auch fertig in der math.h Bibliothek

    double Betrag(double n) {
    return(fabs(n));
    }

    Grüße

    FireHeart

    Donnerstag, 26. Mai 2011 12:15