Advertisement
Guest User

Untitled

a guest
Dec 14th, 2017
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.48 KB | None | 0 0
  1. #include <stdlib.h>
  2. void ord_sel_min(char a[],int n);
  3. void min_val_ind(char a[],int size_a,char *min_array,int *i_min);
  4. void scambiare(char *a,char*b);
  5.  
  6.  
  7. void ord_sel_min(char a[],int n)
  8. {
  9. int i,i_min;
  10. char min_array;
  11. for(i=0;i<n;i++)
  12. {
  13. min_val_ind(&a[i],n-1,&min_array,&i_min);
  14. scambiare(&a[i],&a[i_min+i]); // [i_min+i] rappresenta lo spiazzamento della memoria: dato che min_val_ind restituisce indici da
  15. // 0 a n, bisogna sommare ad essi l'indice i per avere la posizione corretta nell'array principale.
  16. }
  17.  
  18. }
  19.  
  20.  
  21. void min_val_ind(char a[],int size_a,char *min_array,int *i_min)
  22. {
  23. int i;
  24. *min_array=0;
  25. *i_min=0;
  26. for(i=0;i<size_a;i++)
  27. {
  28. if(a[i]<*min_array)
  29. {
  30. *min_array=a[i];
  31. *i_min=i;
  32. }
  33. }
  34.  
  35.  
  36. }
  37.  
  38. void scambiare(char *a,char*b)
  39. {
  40. char var_app;
  41. var_app=*a;
  42. *a=*b;
  43. *b=var_app;
  44. }
  45.  
  46. int main()
  47. {
  48. int i,size_testo;
  49. char testo[100];
  50. printf("Inserisci la quantita di caratteri desiderata:");
  51. scanf("%d",&size_testo);
  52.  
  53. for(i=0;i<size_testo;i++)
  54. {
  55. printf("Inserisci testo[%d]=",i);
  56. scanf(" %c",&testo[i]);
  57. }
  58. printf("Array disordinato:\n");
  59.  
  60. for(i=0;i<size_testo;i++)
  61. {
  62. printf("%c",testo[i]);
  63. }
  64.  
  65. ord_sel_min(testo,size_testo);
  66.  
  67. printf("Array ordinato:\n");
  68.  
  69. for(i=0;i<size_testo;i++)
  70. {
  71. printf("%c",testo[i]);
  72. }
  73. return 0;
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement