berechnen von zahlen



  • also ich hab ein problem ich gebe vor das n=7 und m=4 so und jetzt will ich nach einer formel alle zahlen ausrechnen bis zum grenzwert 7 (t ist team nicht von belang) k ist am anfang 0 dann +1 bei jedem schritt

    dann wuerde rauskomen 1, 6, 11
    so und ich will jetzt das er die 6 ausgibt 11 ist ja schon ueber 7...
    aber er gibt aus 32.... irgendwas was mach ich falsch....

    for (t=1; x<=n; ) {
    x=((k*(m+1))+1);
    k=k+1;
    }



  • *versucht, aus dem Text und dem Code-Schnipselchen etwas herauszudeuten*

    Wenn du die Zwischenschritte ausgeben willst, mußt du das in deiner Schleife machen. Nach dem Schleifenende hast du nur noch den letzten Wert (der die Abbruchbedingung nicht mehr erfüllt hat).



  • ja genau den will ich bei meinen beispiel wäre das die 6!

    nur irgendwie funktioniert das bei mir nicht so ganz 😡



  • Dann mußt du dir halt den alten Wert jeweils merken 😉

    for(x=0;x<=n;++k)
    {
      xa=x;
      x=((k*(m+1))+1);
    }
    printf("letzter echter Wert: %d",xa);
    

    PS: Was das t mit deiner Schleife zu tun hat, mußt du mir mal bitte erklären 🤡



  • ui vielen dank es funktioniert

    t definiert wenn 1 eingegeben wird das der computer beginnt bei 2 das der vor dem computer beginnt ^^

    das ganze basiert einfach darauf das es bestimmte zahlen nach dieser formel gibt wenn er ie erreicht hat er gewonnen egal was ich mache bzw anders rum....

    kennst du jeu de nim? genau das versuch ich mit einer reihe zu machen...

    das naechste problem ist ich lass t einlesen entweder 1 pc oder 2 ich dann
    schreibt er entweder 1 oder 2 in t richtig aber er ruft dann immer die erste if funktion auf bwohl t=2 dann hab ich versuch zu dem zeitpunkt t auszulesen steht auf eimal ne 1 drinen statt ne 2..........

    if (t=1) {.....................
    else if (t=2){................



  • Ah so, dafür benötigst du doch nichtmal eine Schleife: "x=((n-1)/(m+1))*(m+1)+1;" sollte deinen richtigen Wert zurückgeben.

    schreibt er entweder 1 oder 2 in t richtig aber er ruft dann immer die erste if funktion auf bwohl t=2 dann hab ich versuch zu dem zeitpunkt t auszulesen steht auf eimal ne 1 drinen statt ne 2..........

    versuch's mal mit "t==1" ('=' ist der Zuweisungsoperator, Vergleich passiert mit '==').


Anmelden zum Antworten