Abwechselnd Zeichen in C ausgeben?


19.10.2021, 15:53

#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;

}

TheFamousSpy  19.10.2021, 15:49

Ergänze mal bitte deinen Programmcode, dann kann man deinen Ansatz entsprechend verbessern/anpassen

wh1t312101 
Fragesteller
 19.10.2021, 15:52

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;
}
Woher ich das weiß:Berufserfahrung – Programmierer
Suboptimierer  19.10.2021, 15:56

Ich sehe, du hast deine Frage ergänzt.

Der Fehler liegt dort:

if(eingabe % 2 == 0) {

Du musst i % 2 rechnen.

1
wh1t312101 
Fragesteller
 19.10.2021, 16:02
@Suboptimierer

Vielen, lieben Dank! :) Bin schon die ganze Zeit am probieren und immer wieder sind es die Details:D

1
Suboptimierer  19.10.2021, 16:08
@wh1t312101

Der Teufel steckt im Detail.

Vielleicht postest du das nächste Mal direkt den Code. ;)

1