Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    59

    combinazioni linguaggio c

    ciao a tutti!!!
    sono nuovo del forum cmq vi posto il mio problema
    allora vorrei realizzare un programma in c che mi dia tutte le possibili combinazioni di una stringa, vorrei però che le combinazioni venissero prese n ad n
    ad esempio: la stringa è --> abcd prese a 2 a 2
    verrebbe una cosa del genere aa, ab, ac, ad, ba, bb, ecc ecc...
    spero di essermi spiegato e di ricevere qualche risposta intanto vi ringrazio anticipatamente...
    ciao

  2. #2
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    allora, visto che sei nuovo, ti rimando alla lettura del regolamento..

    posta un po' il codice da te fatto e vediamo queli sono le tue diffecoltà..

    ps: qui non si fanno esercizi

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    59
    grazie per la risposta e mi scuso se ho violato il regolamento
    cmq il mio codice è questo
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>

    //prototipi di funzione
    void scambio(char* string,int i,int j);
    void permutazioni(char *string,int i ,int n);


    main()
    {

    char s[256];
    printf("Inserire la stringa: ");
    scanf("%s",s);
    permutazioni(s,0,(int)strlen(s)-1);
    printf("\n\n\n");
    system("pause");
    }


    //Genera ricorsivamente le permutazioni
    void permutazioni(char *string,int i ,int n)
    {
    //se si vuole salvare su file
    //FILE *fp;
    int j;
    //fp=fopen("pass.txt", "a");
    //if(fp==NULL)
    //printf("file non trovato...");

    if(i==n)
    {
    printf("%s\n", string);
    //fprintf(fp, "%s\n", string);
    }

    else
    {
    for( j = i ; j<=n ; j++ )
    {
    scambio(string,i,j);
    permutazioni(string,i+1,n);
    scambio(string,i,j);
    }
    }
    //fclose(fp);
    }

    //Effettua un semplice scambio di posizione
    void scambio(char* string,int i,int j)
    {
    int temp;
    temp = string[i];
    string[i] = string[j];
    string[j] = temp;
    }

    che però calcola solo le permutazioni non le combinazioni ... per le combinazioni non mi viene niente in mente... e non so come fare neanche per fargli combinare gli elementi N ad N
    posso risolvere creando un altro vettore di lunghezza N ?
    boh non so proprio ...

  4. #4
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.