fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. char *input_argv[] = { "prog.c", "12", "10", "17", "1", "22" }; // al posto di argv[]
  5. int input_argc = sizeof (input_argv) / sizeof (input_argv[0]); // al posto di argc
  6.  
  7. void
  8. bsort (int lista[], int a, int z)
  9. {
  10. int scambio;
  11. int k;
  12.  
  13. if (a < z)
  14. {
  15. // Scansione interna dell'array per collocare nella
  16. // posizione a l'elemento giusto.
  17.  
  18. for (k = a+1; k <= z; k++)
  19. {
  20. if (lista[k] < lista[a])
  21. {
  22. // Scambia i valori.
  23.  
  24. scambio = lista[k];
  25. lista[k] = lista[a];
  26. lista[a] = scambio;
  27. }
  28. }
  29.  
  30. bsort (lista, a+1, z);
  31. }
  32. }
  33.  
  34. int
  35. main (int argc, char *argv[])
  36. {
  37. int *lista = (int *) malloc ((input_argc - 1) * sizeof (int));
  38. int i;
  39.  
  40. // Considera gli argomenti come gli elementi
  41. // dell'array da ordinare.
  42.  
  43. for (i = 1; i < input_argc; i++)
  44. {
  45. sscanf (input_argv[i], "%i", &lista[i-1]);
  46. }
  47.  
  48. // Esegue il riordino.
  49.  
  50. bsort (lista, 0, input_argc-2);
  51.  
  52. // Emette il risultato.
  53.  
  54. for (i = 0; i < (input_argc-1); i++)
  55. {
  56. printf ("%i ", lista[i]);
  57. }
  58. printf ("\n");
  59.  
  60. return 0;
  61. }
Success #stdin #stdout 0.01s 1852KB
stdin
Standard input is empty
stdout
1 10 12 17 22