[ create a new paste ] login | about

Link: http://codepad.org/ca66C9da    [ raw code | output | fork ]

appunti2 - C, pasted on May 1:
#include <stdio.h>
 
char *input_argv[] = { "prog.c", "12", "10", "17", "1", "22" };     // al posto di argv[]
int   input_argc   = sizeof (input_argv) / sizeof (input_argv[0]);  // al posto di argc

void visualizza (int lista[], int dimensione)
{
    int i;

    for (i = 0; i < dimensione; i++)
      {
        printf ("%i ", lista[i]);
      }
    printf ("\n");
}

void permuta (int lista[], int a, int z, int dimensione)
{
    int scambio;
    int k;

    // Se il segmento di array contiene almeno due elementi,
    // si procede.

    if ((z - a) >= 1)
      {
        // Inizia un ciclo di scambi tra l'ultimo elemento e
        // uno degli altri contenuti nel segmento di array.

        for (k = z; k >= a; k--)
          {
            // Scambia i valori.

            scambio = lista[k];
            lista[k] = lista[z];
            lista[z] = scambio;

            // Esegue una chiamata ricorsiva per permutare
            // un segmento piĆ¹ piccolo dell'array.

            permuta (lista, a, z - 1, dimensione);

            // Scambia i valori.

            scambio = lista[k];
            lista[k] = lista[z];
            lista[z] = scambio;
          }
      }
    else
      {
        // Visualizza l'array.

        visualizza (lista, dimensione);
      }
}

int
main (int argc, char *argv[])
{
    int lista[input_argc - 1];
    int i;

    // Considera gli argomenti come gli elementi
    // dell'array da permutare.

    for (i = 1; i < input_argc; i++)
      {
        sscanf (input_argv[i], "%i", &lista[i-1]);
      }

    // Esegue le permutazioni.

    permuta (lista, 0, input_argc - 2, input_argc - 1);

    return 0;
}


Output:
12 10 17 1 22 
10 12 17 1 22 
12 17 10 1 22 
17 12 10 1 22 
17 10 12 1 22 
10 17 12 1 22 
12 10 1 17 22 
10 12 1 17 22 
12 1 10 17 22 
1 12 10 17 22 
1 10 12 17 22 
10 1 12 17 22 
12 1 17 10 22 
1 12 17 10 22 
12 17 1 10 22 
17 12 1 10 22 
17 1 12 10 22 
1 17 12 10 22 
1 10 17 12 22 
10 1 17 12 22 
1 17 10 12 22 
17 1 10 12 22 
17 10 1 12 22 
10 17 1 12 22 
12 10 17 22 1 
10 12 17 22 1 
12 17 10 22 1 
17 12 10 22 1 
17 10 12 22 1 
10 17 12 22 1 
12 10 22 17 1 
10 12 22 17 1 
12 22 10 17 1 
22 12 10 17 1 
22 10 12 17 1 
10 22 12 17 1 
12 22 17 10 1 
22 12 17 10 1 
12 17 22 10 1 
17 12 22 10 1 
17 22 12 10 1 
22 17 12 10 1 
22 10 17 12 1 
10 22 17 12 1 
22 17 10 12 1 
17 22 10 12 1 
17 10 22 12 1 
10 17 22 12 1 
12 10 22 1 17 
10 12 22 1 17 
12 22 10 1 17 
22 12 10 1 17 
22 10 12 1 17 
10 22 12 1 17 
12 10 1 22 17 
10 12 1 22 17 
12 1 10 22 17 
1 12 10 22 17 
1 10 12 22 17 
10 1 12 22 17 
12 1 22 10 17 
1 12 22 10 17 
12 22 1 10 17 
22 12 1 10 17 
22 1 12 10 17 
1 22 12 10 17 
1 10 22 12 17 
10 1 22 12 17 
1 22 10 12 17 
22 1 10 12 17 
22 10 1 12 17 
10 22 1 12 17 
12 22 17 1 10 
22 12 17 1 10 
12 17 22 1 10 
17 12 22 1 10 
17 22 12 1 10 
22 17 12 1 10 
12 22 1 17 10 
22 12 1 17 10 
12 1 22 17 10 
1 12 22 17 10 
1 22 12 17 10 
22 1 12 17 10 
12 1 17 22 10 
1 12 17 22 10 
12 17 1 22 10 
17 12 1 22 10 
17 1 12 22 10 
1 17 12 22 10 
1 22 17 12 10 
22 1 17 12 10 
1 17 22 12 10 
17 1 22 12 10 
17 22 1 12 10 
22 17 1 12 10 
22 10 17 1 12 
10 22 17 1 12 
22 17 10 1 12 
17 22 10 1 12 
17 10 22 1 12 
10 17 22 1 12 
22 10 1 17 12 
10 22 1 17 12 
22 1 10 17 12 
1 22 10 17 12 
1 10 22 17 12 
10 1 22 17 12 
22 1 17 10 12 
1 22 17 10 12 
22 17 1 10 12 
17 22 1 10 12 
17 1 22 10 12 
1 17 22 10 12 
1 10 17 22 12 
10 1 17 22 12 
1 17 10 22 12 
17 1 10 22 12 
17 10 1 22 12 
10 17 1 22 12 


Create a new paste based on this one


Comments: