-         

Ergebnis 1 bis 7 von 7

Thema: probleme mit C//programm zur berechnung der summe des geburt

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.05.2006
    Beiträge
    144

    probleme mit C//programm zur berechnung der summe des geburt

    Anzeige

    hallo

    ich weiß es hat nichts mit AVR & co zu tun.
    nur bin ich shcon eine weile hier und weiß auch nicht wo ich mich schnell mal nach rat umhörn kann als hier

    ich besuch mal wieder die schule, diesmal die abendschule, bissl zach aber es geht. wir nehemn grad in programmierne c durch, hab früher immer nur mit Bascom programmiert. vielleicht hab ich deshabl ein paar probleme damit.

    zum problem, ich sollte ein programm programmieren welches die summe des geburtsdatums liefert, und zwar aus den einzelen ziffern.

    also zb geb 1.1.1111 =6
    2.2.2222 = 12

    nur bekomm ich immer eine fehlermeldung beim kompilieren & hier bitte ich um rat & hilfe;falls möglich

    fehlermeldung
    `main' must return `int'
    in Function `int zerlege(int)':
    expected `;' before ')' token
    expected primary-expression before "return"
    expected `)' before "return"

    mfg
    piri

    Code:
    #include <stdio.h>
    #include <stdlib.h>
    
    int zerlege (int);
    int tag, monat, jahr, ergebnis, summe; //deklaration der Variablen
    
    void main ()
    {
              
         printf("Berechnung der Summe ihrer Geburtsdaten");   // Textausagbe für Prorgrammstart
         
         printf("\nBitte geben sie den Tag ein:");  
         scanf ("%d, &tag"); //der tag wird eingelesen
         
         printf("\nBitte geben sie das Monat ein:");
         scanf ("%d, &monat"); //das monat wird eingelesen
         
         printf("\nBitte geben die das Jahr ein:");
         scanf ("%d, &jahr");  //das jahr wird eingelesen
         
         ergebnis=0; //um unerwünschte zustände zu vermeiden
         ergebnis += zerlege(tag);
         ergebnis += zerlege(monat);
         ergebnis += zerlege(jahr);
         
         printf ("\nDie Summe ihrer Daten beträgt:%d,ergebnis"); //Ausgabe des Ergebnis
         
         
         }
         
         int zerlege (int zahl) //Alogarithmus fürs Hauptprogramm
         {
             summe=0;
             for (zahl>0)
             summe+=(Zahl%10);
             summe+=(zahl/10);
             return summe;
             }

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von robocat
    Registriert seit
    18.07.2006
    Beiträge
    935
    1. schreib "int main(void)" und am ende ein "return 0;"
    2. schreib deine scanfs und printfs so: scanf("%d",&i); (also die variable ausserhalb der gänsefüsschen)
    3. for(zahl>0) gibt es nicht. du brauchst ein "while"
    4. was in der schleife geschehen soll, musst du mit {} klammern, vor allem wenn es mehrere befehle sind
    5. schreib zahl klein (in der zeile nach deinem for, das ein while sein soll
    6. summe+=(zahl/10); ist ein denkfehler. du willst hier "zahl" statt "summe" ändern.
    7. vermeide globale variablen, du kannst alle in den funktionen main und zerlege anlegen.

    gruesse

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    06.05.2007
    Beiträge
    112

    C programmieren von Anfang an.

    Hi lowtzow ich hab da ein Buch was dich intressieren könnte, ich habe es mir zum Einstieg in C gekauft, das Buch heißt C programmieren von Anfang an Autor: Helmut Erlenkötter. Ist echt zu empfhelen, damit kannst du alles nocheinmal in Ruhe nachholen.

    Mfg Marcel

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.05.2006
    Beiträge
    144
    hy danke für die hilfe.

    es ist so, ich hab 3scripten aber bei fehlern ist man halt aufgeschmissen wenn der compiler was sagt, wenn man noch nicht viele fehler beseitigt hat.

    zumindestens kommen jetzt keine fhler; herzlichen dank!!!!
    aber ich seh kein ergebnis, ich denk mal er beendet so schnell, dass man nur kein ergebnis sieht?!

    habs mit getchar(); versucht, das sollt auf den nächsten tastendruck warten; naja leider wenig erfolg. auch return 0 zeigt nix an.

    beim nebenprogramm bin ich mir auch ein bisschen unsclüssig!

    ich schreib "int zerlege (int summe)" also summe würde ich zurückgeben, wenn ich das richtig verstanden habe, und dann muss ich natürlich am programmende erst return summe sagen, damit es überhaupt weiß das eine variable zurückgegeben werden kann oder ist dies nichte rforderlich?!

    gibt es irgendwo eine tabelle wo alle funktionen die man hauptsächlich verwendet kurz und übersichtlich zusammengefasst sind weil in jedem Buch ist alles kreuz & quer verteilt und ich blätter immer herum und such mich deppat!

    Code:
    #include <stdio.h>
    #include <stdlib.h>
    
    int zerlege (int);
    int tag, monat, jahr, ergebnis; //deklaration der variablen
    
    int main (void)
    {
              
         printf("Berechnung der Summe ihrer Geburtsdaten");   // Textausagbe für Prorgrammstart
         
         printf("\nBitte geben sie den Tag ein:");  
         scanf ("%d", &tag); //der tag wird eingelesen
         
         printf("\nBitte geben sie das Monat ein:");
         scanf ("%d",&monat); //das monat wird eingelesen
         
         printf("\nBitte geben die das Jahr ein:");
         scanf ("%d,",&jahr); //das jahr wird eingelesen
         
         ergebnis=0; //um unerwünschte zustände zu vermeiden
         ergebnis += zerlege(tag);
         ergebnis += zerlege(monat);
         ergebnis += zerlege(jahr);
         
         printf ("\nDie Summe ihrer Daten beträgt%d",&ergebnis);//Ausgabe des Ergebnis
         
         getchar ();
         
         }
         
         int zerlege (int summe)      //Alogarithmus fürs Hauptprogramm        
         {
             int zahl;
             summe = 0;
             while (zahl>0)
             {           
             summe+=(zahl%10);
             summe+=(zahl/10);
             }
             return summe;
             }
    mfg
    piri
    meine aktuellen Projekte
    Sternenhimmel
    http://www.roboternetz.de/phpBB2/viewtopic.php?t=31439
    BuBoter - Roboter mit Antikolision
    http://www.roboternetz.de/phpBB2/viewtopic.php?t=31632

  5. #5
    Erfahrener Benutzer Roboter Genie Avatar von robocat
    Registriert seit
    18.07.2006
    Beiträge
    935
    win xp schliesst die konsole sofort wieder. um das zu umgehen man kann "getch();" vor "return 0" einfügen. dann muss man allerdings noch die conio.h einbinden.

    das "return 0;" am ende von main sollte man nicht weglassen, auch wenn der code evtl. trotzdem compiliert. schliesslich ist main als funktion mit einem int als rückgabewert definiert.

    in "int zerlege (int summe)" wird ein wert an die funktion übergeben. und was geschieht mit ihm? du setzt ihn auf 0. es wäre sinnvoller mit
    Code:
    int zerlege (int zahl)
    {
    int summe=0;
    while(zahl>0)
    ...
    return summe;
    }
    dann stimmt zwar immer noch nicht alles, aber den rest schaffst du allein.

    über c gibt es einiges im netz, zb.
    http://www.galileocomputing.de/openbook/c_von_a_bis_z/
    hier werden auch paar links genannt:
    http://www.wer-weiss-was.de/theme158...le1519732.html

    eine liste mit befehlen dürfte es sicher irgendwo geben, ich weiss aber nicht wo. ein blick in die headerdatei (bspw. math.h) sagt einem aber wenigstens, was es für befehle gibt. was die dann tun, kann man sich googlen.

    gruesse

    edit, noch kurz zur erklärung:
    Code:
    int bla(int blub) 
    {
      int ret=123;
      return ret;
    }
    funktion bla wird aufgerufen mit zB int i=bla(7); die 7 steht in blub (innerhalb der funktion, ausserhalb gibt es kein blub) und zurückgegeben wird ret, also hier immer 123. nomal würde man aus blub was schönes berechnen.

    Code:
    int bla(void) 
    {
      int ret=123;
      return ret;
    }
    genauso wie zuvor, aber ohne blub. aufruf mit int i=bla();

    Code:
    void bla(void) 
    {
      ...
      return;
    }
    keine parameter und kein rückgabewert.

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    12.04.2007
    Ort
    Rot am See, Heroldhausen
    Alter
    24
    Beiträge
    14
    ich kann auch nur das Buch von Helmut Erlenkötter empfehlen.
    Es hat sehr viele Beispiele und viele Aufgaben.

    Aller anfang ist schwer

    MFG
    maexlich

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    13.06.2007
    Ort
    Mainz
    Beiträge
    23
    Ich habe auch das Buch von Herrn Erlenkötter benutzt, also auch Empfehlung meinerseits!
    LG, mefiX

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •