Abwechselnd Zeichen in C ausgeben?
Guten Tag,
ich muss ein Programm schreiben (in C), welches 2 Zeichen abwechselnd ausgeben soll (per printf). Dabei soll per scanf eine ganze Zahl eingelesen werden (zB eine 5) und eine Zeichenfolge ausgegeben werden. Beispiel mit der Zahl 5: MKMKM
Bei der 4 bspw.: MKMK
Bei der 9: MKMKMKMKM
Bei einer 0 soll nichts erscheinen.
usw.
Wie könnte ich dies mithilfe einer for-Schleife lösen? Stehe leider auf dem Schlauch und komme nicht weiter, denn meine Ansätze führen nur dazu, dass entweder das M oder das K ausgegeben wird in eingegebener Anzahl.
Vielen Dank im Voraus!:)
#include <stdio.h>
int main(int argc, char *argv[]) {
int eingabe, i;
scanf("%d", &eingabe);
for(i = 0; i <= eingabe - 1; i++){
if(eingabe % 2 == 0) {
printf("K");
}else {
printf("M");
}
}
return 0;
}
![](https://images.gutefrage.net/media/user/TheFamousSpy/1647432540478_nmmslarge__0_0_1919_1919_403148a7164f4c591776466ae088b7c2.png?v=1647432541000)
Ergänze mal bitte deinen Programmcode, dann kann man deinen Ansatz entsprechend verbessern/anpassen
![](https://images.gutefrage.net/media/default/user/8_nmmslarge.png?v=1551279448000)
Dürfte gleich erscheinen:)
2 Antworten
![](https://images.gutefrage.net/media/default/user/14_nmmslarge.png?v=1551279448000)
Die Schleife läuft so oft durch, wie die Nutzereingabe. In jedem Schleifendurchlauf überprüfst du z.B. ob die Laufvariable restlos durch 2 teilbar ist (dafür gäbe es den Modulo-Operator %). Wenn die Zahl gerade ist -> M ausgeben. Wenn sie ungerade ist -> K ausgeben. Da sich gerade und ungerade Zahlen immer abwechseln bekommst du so deine gewünschte Ausgabe.
![](https://images.gutefrage.net/media/user/Suboptimierer/1443606504450_nmmslarge__0_0_160_160_7f828fad18ee7edb96b8daceedaeeadb.png?v=1443606506000)
for(i=0;i<Zahl;i++)
{
if(bK)
output('K')
else
output('M');
bK = !bK;
}
![](https://images.gutefrage.net/media/default/user/8_nmmslarge.png?v=1551279448000)
Vielen, lieben Dank! :) Bin schon die ganze Zeit am probieren und immer wieder sind es die Details:D
![](https://images.gutefrage.net/media/user/Suboptimierer/1443606504450_nmmslarge__0_0_160_160_7f828fad18ee7edb96b8daceedaeeadb.png?v=1443606506000)
Ich sehe, du hast deine Frage ergänzt.
Der Fehler liegt dort:
Du musst i % 2 rechnen.