C :: Aufgabe #173

1 Lösung Lösung öffentlich

Anzahl möglicher Objektkombinationen

Fortgeschrittener - C von mty - 16.10.2017 um 19:13 Uhr
Ich möchte die Anzahl aller möglicher Objektkombinationen Z haben, die zu einer bestimmten Anzahl N möglich sind.

Eingabe:

ARRAY Z : object a, object b, object c, object d ... etc
INTEGER N: 10

Ausgabe:
a a a a a a a a a a
a a a a a a a a a b
a a a a a a a a b b
a a a a a a a b b b
a a a a a a b b b b
a a a a a b b b b b
a a a a b b b b b b
a a a b b b b b b b
a a b b b b b b b b
a b b b b b b b b b
b b b b b b b b b b
b b b b b b b b c c
b b b b b b b c c c
b b b b b b c c c c
b b b b b c c c c c
b b b b c c c c c c
....... usw.

Die Anzahl der Objektkombinationen Z kann nicht größer sein als die Anzahl N. Das ganze soll vom Benutzer eingestellt werden können.
Zusätzlich soll das Ergebnis in einem Array gespeichert werden und dann eine eindeutige Eigenschaft jedes Objektes ausgegeben werden können.

Wer will kann sich gerne Versuchen.




Lösungen:

vote_ok
von ylreda (340 Punkte) - 11.11.2018 um 11:11 Uhr
Quellcode ausblenden C-Code
#include <stdio.h>
#include <stdlib.h>


extern char Alph_B[]={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};

int main()
{
    int i, j, n;
    printf("*******************************************\n");
    printf("*                                         *\n");
    printf("*  Anzahl moeglicher Objektkombinationen  *\n");
    printf("*                                         *\n");
    printf("*******************************************\n");
    for(i=0; i<26; i++){
        for(n=0; n<10; n++){
            switch (n){
            case 0: printf("\n"); for(j=0; j<10; j++)  { putchar(Alph_B[i]);} break;
            case 1: printf("\n"); for(j=0; j<10-n; j++){ putchar(Alph_B[i]);} for(j=0; j<n; j++){ putchar(Alph_B[i+1]);} break;
            case 2: printf("\n"); for(j=0; j<10-n; j++){ putchar(Alph_B[i]);} for(j=0; j<n; j++){ putchar(Alph_B[i+1]);} break;
            case 3: printf("\n"); for(j=0; j<10-n; j++){ putchar(Alph_B[i]);} for(j=0; j<n; j++){ putchar(Alph_B[i+1]);} break;
            case 4: printf("\n"); for(j=0; j<10-n; j++){ putchar(Alph_B[i]);} for(j=0; j<n; j++){ putchar(Alph_B[i+1]);} break;
            case 5: printf("\n"); for(j=0; j<10-n; j++){ putchar(Alph_B[i]);} for(j=0; j<n; j++){ putchar(Alph_B[i+1]);} break;
            case 6: printf("\n"); for(j=0; j<10-n; j++){ putchar(Alph_B[i]);} for(j=0; j<n; j++){ putchar(Alph_B[i+1]);} break;
            case 7: printf("\n"); for(j=0; j<10-n; j++){ putchar(Alph_B[i]);} for(j=0; j<n; j++){ putchar(Alph_B[i+1]);} break;
            case 8: printf("\n"); for(j=0; j<10-n; j++){ putchar(Alph_B[i]);} for(j=0; j<n; j++){ putchar(Alph_B[i+1]);} break;
            case 9: printf("\n"); for(j=0; j<10-n; j++){ putchar(Alph_B[i]);} for(j=0; j<n; j++){ putchar(Alph_B[i+1]);} break;
            }
        }
    }
    return 0;
    }