fehlersuche



  • hallo,

    ich schon wieder.

    #include <stdio.h>
    int summe ( int x, int y);
    {
    x+=y;
    }
    int main()
    {
    int summe;
    summe = (5,9); //die Summe aus 5 und 9 wird der Varible summe zugewiese n
    summe += (11,12); //der Wert von summe wird um die summe von 11 und 12 erhŽht
    printf ("Summe=%s\n ", summe);
    return 0;
    }
    

    Was sagt ihr dazu und wo bzw wie kann ich es besser machen?

    danke

    ich soll hier die finden und sie berichtiegen.
    Das wäre meine Lösung:

    #include <stdio.h>
    #include <stdlib.h>
    int main(int argc, char *argv[])
    {
    int x,y,a,b;
    int summe,summe1;
    x=5;
    y=9;
    a=11;
    b=12;
    summe=x+y;//die Summe aus 5 und 9 wird der Variable summe zugewieden
    printf("Das Ergebnis der Summe lautet: %d\n",summe);
    summe1=a+b;//der Wert von Summe wird um die summe von 11 und 12 erhöht
    printf("Das Ergebnis von Summe 1 lautet: %d\n",summe1);
    
    system("PAUSE");
    return 0;
    }
    


  • summe = (5,9); //die Summe aus 5 und 9 wird der Varible summe zugewiese n
    summe += (11,12); //der Wert von summe wird um die summe von 11 und 12 erhŽht
    

    Die beiden Zeilen machen bestimmt nicht das, was die Kommentare aussagen. Dort verwendest du den Komma-Operator und der liefert nur den zweiten Wert zurück.
    Außerdem macht es wenig Sinn, mit einer lokalen Variablen die Funktion zu überdecken - und die Funktion selber hat auch keine bleibende Wirkung.



  • CStoll schrieb:

    summe = (5,9); //die Summe aus 5 und 9 wird der Varible summe zugewiese n
    summe += (11,12); //der Wert von summe wird um die summe von 11 und 12 erhŽht
    

    Die beiden Zeilen machen bestimmt nicht das, was die Kommentare aussagen. Dort verwendest du den Komma-Operator und der liefert nur den zweiten Wert zurück.
    Außerdem macht es wenig Sinn, mit einer lokalen Variablen die Funktion zu überdecken - und die Funktion selber hat auch keine bleibende Wirkung.

    was ist ein komma-operator?

    include <stdio.h>
    #include <stdlib.h>
    
    int foo (unsigned int n)
    {
        int i=2;
        int ip=1;
        while(1)
    {
        if(i>n/2)
        break;
        if(n%i==0)
        {
                  ip=0;
                  break;
                  }
                  i++
                  }
                  return ip;
                  }
    

    was ist hier falsch ich muss sagen was die funktion berechnet. Es ist eine if schleife oder? er meckert über die vorletzte klammer.



  • 😡 Rück deinen Code sinnvoll ein.

    Für Komma-Operator siehe: http://en.wikipedia.org/wiki/Comma_operator



  • Josy847 schrieb:

    was ist ein komma-operator?

    Ein vordefinierter Operator in C++ (und zwar in der Prioritätskette ganz unten). Der Operator bewirkt eine sequenzielle Ausführung der beiden Operanden - a, b berechnet erst a (für dessen Nebeneffekte), danach b und liefert das Resultat von b zurück.
    Der Komma-Operator wird in freier Wildbahn hauptsächlich im Zusammenhang mit for-Schleifen gesichtet, um mehrere Initialisierungs- oder Aktualisierung-Ausdrücke zu kombinieren. Er darf übrigens nicht verwechselt werden mit dem Komma bei Parameter-Übergaben.

    was ist hier falsch ich muss sagen was die funktion berechnet. Es ist eine if schleife oder? er meckert über die vorletzte klammer.

    Eine vernünftige Einrückung würde der Funktion gut tun. Mit fällt auf jeden Fall auf, daß in Zeile 17 das Semikolon fehlt.

    PS: Zum Thema www.if-schleife.de sage ich jetzt nichts 😃



  • Komma-Operator:

    http://www.imb-jena.de/~gmueller/kurse/c_c++/c_comma.html

    Man kann auch gut ohne das Ding leben, aber manchmal kann man ihn tatsächlich in for-Schleifen gebrauchen... Wenn du den Kommaoperator gleich wieder vergisst wird das allerdings auch nich dramatisch sein 😃


Anmelden zum Antworten