For-Schleife funktioniert nicht...



  • Ich lerne gerade für die Schule. Wir haben eine Aufgabe bekommen wo wir eine Basiszahl und einen Exponent eingeben müssen und dann ausrechnen lassen müssen. Das alles soll mit einer FOR-Schleife gehen. POW() dürfen wir nicht verwenden. Leider funktioniert meine Schleife nicht und geht die Schleife nur einmal durch. Kann mir jemand sagen wo der fehler ist?

    #include<stdio.h>
    int main (void)
    {
    	int basis=0, exp=0, wert=1, i=1;
    
    	clrscr();
    
    	printf("\nBasis eingeben\t");
    	scanf("%i", &basis);
    	printf("\nExpo eingeben\t");
    	scanf("%i", &exp);
    
    	for(i=1;i==exp;i++)
    	{
    		wert=wert*basis;
    	}
    
    	printf("\nDer Wert %i", wert);
    
    	getch();
    	return 0;
    }
    

    Gruss,
    Cyrill



  • naja, das geht die schleife nur solange durch, wie i exp entspricht...
    abgesehen davon wird deine anweisung nach for entwerder nicht ausgeführt, oder erst wenn for durchlaufen ist, da for solch eine syntax nicht kennt. da müsstest du es schon zu while umbauen oder noch besser das dritte argument zu sowas wie "(i++; wert=wert*basis;)" abändern.....

    btw: mein GCC meckert mich neuerding an, dass FOR ausserhalb irgendeines standards (ich glaub C99) benutzt wird und bricht ab.... weiss wer warum?



  • for(i=1;i<=exp;i++) // es muss <= heissen nicht ==
    

    mfg hohesC

    [edit] tipp fehler 😉 [/edit]



  • oder mit der while

    while(i<=exp) 
    { 
        wert=wert*basis; 
        i++;
    }
    

    mfg hohesC



  • loki1985 schrieb:

    btw: mein GCC meckert mich neuerding an, dass FOR ausserhalb irgendeines standards (ich glaub C99) benutzt wird und bricht ab.... weiss wer warum?

    Initialisierst du deine Zählervariable im For-Kopf ?? Woebi das C99 ist... Aber kein C89



  • Ich meine natürlich definierst.. lol



  • jup, mache ich... aber das komische ist das GCC/MinGW das früher nicht angemeckert hat.... und er meckert es ja nicht nur an, sondern bricht sogar ab.

    möglicherweise erst seit die (nicht mehr ganz) neue current-version von MinGW habe...

    soll das heissen ich muss die erste variable ausserhalb des vor deklarieren?

    werd ich mal probieren....

    thx.



  • ok, habe es jetzt mal probiert mit deklaration ausserhalb/vor dem for();

    so nimmt er es problemlos. thanx...

    nur zur info für andere: die errormessage lautete:

    `for' loop initial declaration used outside C99 mode



  • Danke schön, funktioniert! Muss <= nehmen... (also, solange wie)

    Thx,
    Cyrill



  • nope, das heisst nicht "solange wie ..." sondern "solange kleiner als oder gleich groß wie ..."


Log in to reply