Wo liegt das Problem??



  • könnte vllt sein aber wo genau??

    ich habe auch schon den zweiten ifzweig ausgeblendet sodass da nur noch die printf anweisung steht..dann ist es so dass nach allen 12 monaten die printfanweisung ausgeführt wird und unterbricht somit nur die tabelle..

    das problem scheint zu sein, dass die anweisungen nach der zweiten if bedingung nicht richtig ausgeführt wird..kein plan...



  • Ich arbeite nicht mit Visual Studio - dein Quelltext sieht aber verdächtig nach Borland oder den Nachfolgern aus oder setzt ihr eine entsprechende Bibliothek ein?

    Sollt ihr das so schreiben das jeder gängige C-Compiler das übersetzen kann oder für die oben genannten Fälle?

    Wenn du Quelltext schreibst nimm Code-Tags - in diesem Fall den Button wo "C/C++" drauf steht.

    MfG f.-th.



  • Hier mal ein bisschen übersichtlicher:

    int xAkt, yAkt; 
    int yTab = 13; 
    int zeichen; 
    int zCount; 
    
    if ((rnr == 12) || (rnr == 24) || (rnr == 36) || (rnr == 48)) //rnr = Monate 
    { 
        printf("\n\nFuer die Berechnung der weiteren Monate bitte die Enter- Taste druecken!Vielen Dank!\n"); 
        if (( zeichen=getchar() ) != '\n') 
        { 
            xAkt = wherex(); 
            yAkt = wherey(); 
            for( zCount = 0; zCount < 12; zCount++ ) 
            { 
                gotoxy(1, yTab+zCount); clreol(); 
            } 
            gotoxy(xAkt, yAkt);
        } 
    }
    

    Und wenn nrn = Monate sind, wieso nennst du sie nicht gleich Monate?
    So viel zum Thema Übersichtlichkeit.

    So, und wenn du alle 12 Monate ausgeben willst, dann reicht doch ein simples

    if(Monate == 12) {
        printf("Enter druecken");
        system("cls");
        Monate = 1; Jahre++;
    }
    

    oder seh ich da was falsch?



  • if(Monate == 12) {
    printf("Enter druecken");
    system("cls");
    Monate = 1; Jahre++;
    }

    danke erstmal für eine Antwort:)
    1.ja wir haben passende bibliotheken -> conio,stdio etc.
    2.was besagt der befehl: system("cls")???
    3. nein ich möchte die monate nicht in jahre umrechnen..ich mäöchte folgendes erreichen:

    monat zinsen tilgung rest
    1. 0.11 4,56 600
    2. .. .. ..
    3. .. .. ..
    :
    :
    12. .. .. ..

    enter druecken

    //jetzt sollen die bisherigen daten von monat 1-12 gelöscht werden und der cursor soll danach wieder direkt unter monat stehen, sodass die neuen werte gleich in der tabelle stehen

    monat zinsen tilgung rest
    13. .. .. ..
    14. .. .. ..
    :
    :
    24. .. .. ..

    enter druecken

    //und das gleiche spiel von vorn bis rest = 0 ist...

    danke für den tip mit dem quelltext;)



  • warum nicht

    for( jan bis dez)
    {
    berechnung
    ausgabe
    zähler anpassen
    }

    und aussen herum vielleicht noch do {}while(getilgt) ?

    ?

    MfG



  • okay würd auch gehn...aber wie bekomm ich das mit dem text löschen hin??
    und den cursor zurücksetzen??
    die befehle sorgen eigentlich dafür..aber irgendwo muss ich da einen fehler drinnen haben, der den zweiten if-befehl ignoriert..

    das proramm stoppt ja auch nach 12 monaten dann muss ich enter drücken und dann wird aber nichts gelöscht sondern die nächsten 12 monate rangehängt-.-

    HILFE:D



  • Ich sehe in deinen Coderudimenten nur eine Schleife die von 0...11 läuft. Warum fragst du dich dann, warum nur etwas 12 mal passiert?



  • for (a = 0; a != 6;a = rest + (2*3))
    	      {
    
    		  printf("  %2.0lf      %3.2lf     %5.2lf       %5.2lf\n", ++rnr, z, tilg, rest); //rnr wird pro schleifenverlauf um eins erhöht
    
    		   if ((rnr == 12) || (rnr == 24) || (rnr == 36) || (rnr == 48))
    	     {
    	   printf("\n\nFuer die Berechnung der weiteren Monate bitte die Enter - Taste druecken!Vielen Dank!\n");
    
    	          if (( zeichen=getchar() ) != '\n') 
    		    {
    				xAkt = wherex();  yAkt = wherey();
    			     for( zCount = 0; zCount < 12; zCount++ )
    	              { gotoxy(1, yTab+zCount);  clreol(); }
    	           gotoxy(xAkt, yAkt);
    
    				}
    

    durch die erhöhun um eins müsste doch auch irgendwann die bedingung rnr == 24 war sein und die übrigen..ist auch fast so..nach 24,36,48 monaten wird der text Fuer die Berechnung der weiteren Monate bitte die Enter - Taste druecken!Vielen Dank! ausgegeben..und er reagiert wie gesagt auch auf die 2. if bedinung mit der enter taste..nur das da hinter ignoriert er dann...

    ps: der fehler liegt auch nicht in der ersten for-schleife:)



  • Wie umfangreich ist denn dein Quelltext?

    Hier noch mal:
    do
    {
    Tafel putzen 😃
    for( jan bis dez)
    {
    berechnung
    ausgabe
    zähler anpassen
    }
    Fürs nächste Jahr ENTER
    }
    while(getilgt) ?

    👍



  • wie ist das gemeint für nächstes jahr enter drücken???



  • do
       {
              hier: Bildschirm löschen
    
    			  for ( monat = 0; monat != 13; monat++);
    			  {
    			          Berechnung und Ausgabe
    			   }
    			  printf("Enter druecken");
    			  if (( zeichen=getchar() ) != '\n' || rnr != 61) goto hier;
    
    		  }
    				  while (rest == 0);
    

    hab das jetzt so...was macht er?? gibt einen monat aus und fordert dann enter drücken dann löscht er bei machnen werten die erste zeile bis einschliesslich 7, bei anderen von 1 -6 und danach zeigt er alle an:D aber bis ins unendliche...seind meine bedigugnen falsch??



  • Sie haben mich einen riesengroßes Stück weiter gebracht!!!

    Vielen, vielen Dank!!!!!! 😃



  • Achja, system("cls"); leert einfach nur das Konsolenfenster.


Anmelden zum Antworten