Lets say combinationlength=4.
My logic is create the array {0,0,0,0} add 1 to the last element until first element gets the value 1.Until then if with the addition of 1 the array[3] ends up in a 2 result then make it 0 and then traverse the array(reversed) given a counter variable and every first non 1 element make it 0 while making all elements before the value that first non 1 equal to 0.This is for 8 repetitions.How close am i?Can someone help me finish this?
Also this doesnt run for some reason.Nothing gets printed and ends after 2 seconds.
I just noticed i am skipping a step but anyways.
I want in every iteration to have an array like the sequence.And not added printf("0"); and shortcuts like that.
void print(int combinationlength){
    int i,j,count;
        int a=combinationlength-1;
        int c=combinationlength-1;
        int b;
        int array[4]={0};
        while(array[0]!=1){
            array[a]++;
            if(array[a]==2){
                array[a]=0;
                for(b=a;b<=c-1;b--){
                    if(array[b]==0)
                        array[b]=1;
                }
                c--;
            }
        for(count=0;count<combinationlength;count++){
            printf("%d",array[count]);
        }
        printf("\n");
        }
    return 0;
    }
UPDATED:(also updated my explanation above this ^^ block of code)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
    int i,j,count;
    int a=4-1;
    int c=4-1;
    int b;
    int array[4]={0};
    while(array[0]!=1){
        array[a]++;
        if(array[a]==2){
            array[a]=0;
            for(b=a-1;b>c-1;b--){
                if(array[b]==0) array[b]=1;
                else array[b]=0;
            }
            c--;
        }
        for(count=0;count<4;count++){
            printf("%d",array[count]);
        }
        printf("\n");
    }
return 0;
}
The hardcoded number 4 is supposed to be the input variable.
 
     
     
     
    