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;
}
Ergänze mal bitte deinen Programmcode, dann kann man deinen Ansatz entsprechend verbessern/anpassen
Dürfte gleich erscheinen:)
2 Antworten
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.
for(i=0;i<Zahl;i++)
{
if(bK)
output('K')
else
output('M');
bK = !bK;
}
Vielen, lieben Dank! :) Bin schon die ganze Zeit am probieren und immer wieder sind es die Details:D
Ich sehe, du hast deine Frage ergänzt.
Der Fehler liegt dort:
Du musst i % 2 rechnen.