fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. char *input_argv[] = { "prog.c", "11", "5", "7", "11", "22" }; // al posto di argv[]
  5. int input_argc = sizeof (input_argv) / sizeof (input_argv[0]); // al posto di argc
  6.  
  7. int
  8. ricercaseq (int lista[], int x, int a, int z)
  9. {
  10. if (a > z)
  11. {
  12. // La corrispondenza non è stata trovata.
  13.  
  14. return -1;
  15. }
  16. else if (x == lista[a])
  17. {
  18. return a;
  19. }
  20. else
  21. {
  22. return ricercaseq (lista, x, a+1, z);
  23. }
  24. }
  25.  
  26. int
  27. main (int argc, char *argv[])
  28. {
  29. int *lista = (int *) malloc ((input_argc - 2) * sizeof (int));
  30. int x;
  31. int i;
  32.  
  33. // Acquisisce il primo argomento come valore da cercare.
  34.  
  35. sscanf (input_argv[1], "%i", &x);
  36.  
  37. // Considera gli argomenti successivi come gli elementi
  38. // dell'array da scandire.
  39.  
  40. for (i = 2; i < input_argc; i++)
  41. {
  42. sscanf (input_argv[i], "%i", &lista[i-2]);
  43. }
  44.  
  45. // Esegue la ricerca.
  46.  
  47. i = ricercaseq (lista, x, 0, input_argc - 2);
  48.  
  49. // Emette il risultato.
  50.  
  51. printf ("%i si trova nella posizione %i\n", x, i);
  52.  
  53. return 0;
  54. }
Success #stdin #stdout 0.02s 1852KB
stdin
Standard input is empty
stdout
11 si trova nella posizione 2