C Programmierung alle 4 stelligen Kombinationen?

2 Antworten

Noch eine Variante:

#include <stdio.h>

int i, j;

void main(void)
{
  for(i = 0; i < 16; ++i)
  {
    for(j = 3; j >= 0; --j)
      printf("%d", (i >> j) & 1);
    printf("\n");
  }
}

Falls du die ersten 8 Zahlen (die mit 0 am Beginn) nicht willst, dann einfach "i=0" durch "i=8" ersetzen.


fragenueberf858 
Fragesteller
 05.12.2021, 17:57

Problem hierbei ist dass jede einzelne Zahl untereinander ausgegeben wird und nicht die 4 stelligen untereinander

0
ultrarunner  05.12.2021, 17:59
@fragenueberf858

Also das Ergebnis meines Programmes sieht so aus:

0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111

Was hättest du gerne anders?

1

Zum Beispiel so:

printf("0000\n");
printf("0001\n");
printf("0010\n");
printf("0011\n");
printf("0100\n");
printf("0101\n");
printf("0110\n");
printf("0111\n");
printf("1000\n");
printf("1001\n");
printf("1010\n");
printf("1011\n");
printf("1100\n");
printf("1101\n");
printf("1110\n");
printf("1111\n");

fragenueberf858 
Fragesteller
 05.12.2021, 17:36

Am besten in einer Schleife. So wäre ich auch selber draufgekommen aber trotzdem danke :)

0
Zahhak  05.12.2021, 17:41
@fragenueberf858

Naja, deine Frage war "wie gebe ich alle möglichen 4-stelligen Kombinationen mit den Zahlen 0 und 1 aus?", nix mit Schleife, berechnen, o.ä.. ^^

Aber Okay, da hast du:

for(int i = 0; i < 16; ++i){
    for(int j = 3; j >= 0; --j){
        putc('0'+((i>>j)&1));
    }
    putc('\n');
}

Oder soll es in einer Schleife sein?

Dann:

for(int i = 0; i < 16; ++i){
    putc('0'+((i>>3)&1));
    putc('0'+((i>>2)&1));
    putc('0'+((i>>1)&1));
    putc('0'+(i&1));
    putc('\n');
}
0