Hallo
bei folgendem C-Code bekomme ich die Ausgabe
[...]
->8 Stellen: (0) (1) 2 (3) (4) (5) (6) (7) (8)
->8 Stellen: (0) 1 (2) (3) (4) (5) (6) (7) (8)
->8 Stellen: 0 (1) (2) (3) (4) (5) (6) (7) (8)
->9 Stellen: (0) (1) (2) (3) (4) (5) (6) (7) (8)
>Spielvarianten: 0
Variable 'varianten' enthält also den Wert 0 am Ende des Programms (Zeile C), obwohl nach der Initialisierung mit 0 offensichtlich '++varianten';(Zeile A) aufgerufen wurde, denn sonst gäbe es keine Ausgabe von Zeile B.
Wo liegt der Fehler?
Ich kann ihn nicht finden.
Danke.
#include <stdint.h>
#include <stdio.h>
int main(void){
uint8_t logic1;
uint8_t varianten=0;
for(uint8_t stellen=0; stellen<=9; stellen++){
//durchlaufe spielconfigs;
for(uint16_t spielstart=0; spielstart<=511; spielstart++){
logic1=0;
//count logic 1:
for(uint8_t x=0; x<=8; x++){
if( spielstart&(1<<x) ){
logic1++;
}
}
//printf("\n%d ", spielstart);
//print spielconfig
if( logic1==stellen){
++varianten; //Zeile A
printf("\n->%d Stellen: ", stellen); //Zeile B
//configuration ausgeben:
for(uint8_t h=0; h<=8; h++){
if( spielstart&(1<<h) ){
printf( "(%d) ", h );
}else{
printf( "%d ", h );
}
}
}
}
}
printf("\n>Spielvarianten: %d", varianten); //Zeile C
return 0;
}