Ergebnis 1 bis 5 von 5
  1. #1
    Bad Times Virus Avatar von necory
    Registriert seit
    30.10.2007
    Beiträge
    614

    Standard Kombinationsmöglichkeiten erstellen

    hy,

    es geht darum

    ich bräuchte eine möglichkeit oder besser gesagt ein programm das folgendes bewältigt

    ich habe zahlen von 1-4 diese sollen verschiedenartig kombiniert werden sprich folgendermaßen

    1 2 3 4
    11 12 13 14 21 22 23 24 31 32 33 34 41 42 43 44
    usw.

    es soll eben immer eine zahl bzw. 4 weitere möglichkeiten dazu kommen

    diese sollen gebunden werden sprich ich drücke die taste "1" auf der tastatur und er fragt das array 1 ab bei "2" das zweite usw. müsste bis zu 11 gehen

    wie würde sowas ungefähr aussehen?

    danke schonmal, glaube es ist recht einfach nur würde gern sehen wie man es am elegantesten lösen sollte

  2. #2
    W32.FunLove
    Registriert seit
    05.08.2007
    Beiträge
    137

    Standard

    Ich würds mit ner For-Schleife machen

    ob ich das richtig gemacht habe :? bin mir nicht sicher..

    bin noch ein Newbie..

    Code:
    #include <iostream>
    #include <conio.h>
    using namespace std;
    
    int main ()
    {
    int i;
    cout << "Hier bitte Zahl von 1 bis 4 eingeben: "<<endl;
    cin >> i;
    
    cout<<"Die eingegebene Zahl ist:"<<endl << i <<endl;
    getch();
    
    for (i; )
     {
    for (j=-; j<-0; j = j + 1)    // über all wo ein "-" steht musst du die zahl eingeben
     {
    cout << i << endl;
    cin.get();
    return 0;
    }
    }
    }

    >> wen was falsch ist BITTE verbessern!

    Mfg Hamachi-1

  3. #3
    I'm in ur VM. Avatar von l0dsb
    Registriert seit
    23.07.2007
    Beiträge
    1.038

    Standard

    Hier mal der klassische Lösungsansatz zum Problem. Eine Sache war mir noch unklar, der Permutationscode unten (google) vertauscht die Elemente und gibt alle Kombinationen aus. War das von dir erwünscht oder sollen auch Elemente öfter vorkommen können?
    Code:
    #include <stdio.h>
    #include <conio.h>
    
    char in[] = "01234";
    
    void permutation(char *pSet, long pIndex, long pSetSize)
    {
    	if(pIndex == pSetSize - 1)
    	{
    		printf("\n\t");
    		for(long i = 0; i < pSetSize; i++) printf(" %c", pSet[i]);
    	}
    	else for(long i = pIndex; i < pSetSize; i++)
    	{
    		char Old = pSet[i];
    		pSet[i] = pSet[pIndex];
    		pSet[pIndex] = Old;
    
    		permutation(pSet, pIndex + 1, pSetSize);
    
    		pSet[pIndex] = pSet[i];
    		pSet[i] = Old;
    	}
    }
    
    int main()
    {
    	permutation(in, 0, 5);
    	getch();
    }
    I can haz RCE?

  4. #4
    Bad Times Virus Avatar von necory
    Registriert seit
    30.10.2007
    Beiträge
    614

    Standard

    danke, aber du hast das nicht kompiliert oder?

    denn was vorneweg vergessen wurde ist j zu deklarieren, kein problem nur blick ich grad net was ich hier noch korrigieren muss
    Code:
    error C2143: Syntaxfehler : Fehlendes ';' vor ')'
    ist bei folgendem snip
    Code:
    for (i; )
    {
    for (j=1; j<10; j = j + 1)    // über all wo ein "-" steht musst du die zahl eingeben
     {
    bezogen auf
    Code:
    for (i; )
    edit: danke fogx werde es grad mal testen
    edit2: ja geht fast in die richtung
    nochmal genauer
    zahlen zur verfügung (1,2,3,4) keine 0
    ich drücke die taste 1 zahlen werden abgerufen, nacheinander (1,2,3,4)
    ich drücke die taste 2 zahlen werden abgerufen, nacheinander (11,12,13,14,21,22,23,24,31,32,33,34,41,42,43,44)

    das jetzt weiter zu machen wäre zuviel schreibarbeit denn es würde ja so an kombinationen aussehen

    taste1: 4
    taste2: 16
    taste3: 64
    taste4: 256
    taste5: 1024

    möglichekiten

  5. #5
    I'm in ur VM. Avatar von l0dsb
    Registriert seit
    23.07.2007
    Beiträge
    1.038

    Standard

    Wenn du Zahlen auch doppelt vorkommen dürfen, hilft dir dieser Code eventuell weiter: (Klick). Ist zwar nicht besonders optimiert, funktioniert aber.

    Du kannst dir die Werte ja in eine Table schreiben, so wie ich das verstehe, müssen sie nicht zwingend zur Laufzeit berechnet werden. So sparst du Leistung.
    I can haz RCE?

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •