Guest User

Untitled

a guest
May 31st, 2015
214
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.23 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define MAX 50
  4.  
  5. ///da correggere e commentare
  6.  
  7. void cancellaVettore(int, int, int, int*, int);
  8.  
  9. int main()
  10. {
  11. ///passo base - ne rimane solo uno
  12. ///passo induttivo -
  13.  
  14. int n, m, lista[MAX], i, pos=0, counter=0;
  15.  
  16. printf("Numero persone: ");
  17. scanf("%d", &n);
  18. printf("\nNumero posizione da eliminare: ");
  19. scanf("%d", &m);
  20.  
  21. for(i=0;i<n;i++){
  22. lista[i]=i+1;
  23. printf("\n%d", lista[i]);
  24. }
  25. printf("\n\n");
  26. cancellaVettore(n,m,pos,lista,counter);
  27. return 0;
  28. }
  29.  
  30. void cancellaVettore(int N, int M, int pos, int *vettore, int counter){
  31. int i;
  32. int var;
  33. while(counter<N){
  34. pos=(pos+M-1)%(N-counter);
  35. var=vettore[pos+counter];
  36. for(i=pos+counter;i>counter;i--){
  37. vettore[i]=vettore[i-1];
  38. }
  39. vettore[counter]=var;
  40. //qui credo che dovrei incrementare counter, ma se lo faccio mi stampa un sacco di numeri a caso
  41. cancellaVettore(N-1, M, pos, vettore, counter);
  42. }
  43. for(i=0;i<N;i++){
  44. printf("%d ", vettore[i]);
  45. }
  46. }
  47. ///anziché diminuire la dimensione reinvoco la funzione passandogli il contatore decrementato DIM N-1, m rimane costante, lista)
Advertisement
Add Comment
Please, Sign In to add comment