Advertisement
daniele2013

esercizio 4.1

Jul 8th, 2013
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.02 KB | None | 0 0
  1. #include <stdio.h>
  2. #define ML 50
  3.  
  4. void fusione_sequenze_elem_dispari(int a[ML], int b[ML], int n, int m);
  5.  
  6. int main()
  7. {
  8. int a[ML], b[ML], n, m, i;
  9.  
  10. /*Acquisizione dimensioni sequenze: */
  11. printf("Dimensione prima sequenza -> ");
  12. do{
  13. scanf("%d", &n);
  14. if(n<=0)
  15. printf("Riprova con un valore maggiore di zero -> ");
  16. }while(n<=0);
  17. printf("Dimensione seconda sequenza -> ");
  18. do{
  19. scanf("%d", &m);
  20. if(m<=0)
  21. printf("Riprova con un valore maggiore di zero -> ");
  22. }while(m<=0);
  23.  
  24. /*Acquisizione elementi sequenze: */
  25. printf("Elementi prima sequenza -> ");
  26. for(i=0;i<n;i++)
  27. scanf("%d", &a[i]);
  28. printf("Elementi seconda sequenza -> ");
  29. for(i=0;i<m;i++)
  30. scanf("%d", &b[i]);
  31.  
  32. /*Chiamata della procedura che unisce gli elementi dispari delle due sequenze in una terza sequenza e la manda in output: */
  33. fusione_sequenze_elem_dispari(a,b,n,m);
  34. return 0;
  35. }
  36.  
  37. /*Implementazione procedura di controllo e unione delle due sequenze: */
  38. void fusione_sequenze_elem_dispari(int a[ML], int b[ML], int n, int m){
  39. int i, cont1=0, cont2=0, l, c[ML], j=0;
  40.  
  41. /*Contiamo quanti elementi dispari ci sono nelle due sequenze: */
  42. for(i=0;i<n;i++)
  43. if(a[i]%2!=0)
  44. cont1++;
  45. for(i=0;i<m;i++)
  46. if(b[i]%2!=0)
  47. cont2++;
  48.  
  49. l=cont1+cont2;
  50.  
  51. /*Inizio a riempire la terza sequenza con gli elementi dispari della prima: */
  52. for(i=0;i<n;i++)
  53. if(a[i]%2!=0){
  54. c[j]=a[i];
  55. j++;
  56. }
  57.  
  58. /*Continuo a riempire la terza sequenza con gli elementi dispari della seconda tenendo conto di dove sono arrivato: */
  59. for(i=0;i<m;i++)
  60. if(b[i]%2!=0){
  61. c[j]=b[i];
  62. j++;
  63. }
  64.  
  65. /*Ora mando in output tutta la sequenza: */
  66. printf("La fusione di tutti e soli gli elementi dispari delle due sequenze e' data dalla sequenza -> ");
  67. for(i=0;i<l;i++)
  68. printf("%d ", c[i]);
  69. printf("\n");
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement