Die Aufgabenstellung finden Sie hier
#include <stdio.h> #include <stdlib.h> #include <stdbool.h> void binnum ( int length ) { for (int i=0; i< (1<<length); i++) { int mask = (1<<(length-1)); for (int j=0; j<length; j++) { if ((i&mask) == 0) putchar ('0'); else putchar ('1'); mask >>= 1; } putchar('\n'); } } int main (int argc, char* argv[]) { if (argc<=1) return 0; int length = atoi(argv[1]); if (length<=0) return 0; binnum ( length ); }
PROGRAM main implicit none integer :: length = 0; write (*,"(A,$)") "Bitte eine Laenge eingeben: " read (*,*) length call bin ( length ) write (*,*) " " END PROGRAM SUBROUTINE bin ( length ) implicit none integer :: maxi, k, length ! 2 ^ length maxi = 2**length -1 do k=0, maxi call dec2bin_mod ( k, length ) write (*,*) "" enddo END SUBROUTINE recursive SUBROUTINE dec2bin_mod ( zahl, length ) implicit none integer :: zahl, tmp, k integer,INTENT(in) :: length if (zahl > 0) then tmp = mod(zahl, 2) call dec2bin_mod ( zahl / 2, length-1 ) write (*,"(I1,$)") tmp else do k=1, length ! führende Nullen ausgeben (auf die angebene Länge ausdehnen) write (*,("(A,$)")) "0" enddo endif END SUBROUTINE