Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #define ML 50
- void fusione_sequenze_elem_dispari(int a[ML], int b[ML], int n, int m);
- int main()
- {
- int a[ML], b[ML], n, m, i;
- /*Acquisizione dimensioni sequenze: */
- printf("Dimensione prima sequenza -> ");
- do{
- scanf("%d", &n);
- if(n<=0)
- printf("Riprova con un valore maggiore di zero -> ");
- }while(n<=0);
- printf("Dimensione seconda sequenza -> ");
- do{
- scanf("%d", &m);
- if(m<=0)
- printf("Riprova con un valore maggiore di zero -> ");
- }while(m<=0);
- /*Acquisizione elementi sequenze: */
- printf("Elementi prima sequenza -> ");
- for(i=0;i<n;i++)
- scanf("%d", &a[i]);
- printf("Elementi seconda sequenza -> ");
- for(i=0;i<m;i++)
- scanf("%d", &b[i]);
- /*Chiamata della procedura che unisce gli elementi dispari delle due sequenze in una terza sequenza e la manda in output: */
- fusione_sequenze_elem_dispari(a,b,n,m);
- return 0;
- }
- /*Implementazione procedura di controllo e unione delle due sequenze: */
- void fusione_sequenze_elem_dispari(int a[ML], int b[ML], int n, int m){
- int i, cont1=0, cont2=0, l, c[ML], j=0;
- /*Contiamo quanti elementi dispari ci sono nelle due sequenze: */
- for(i=0;i<n;i++)
- if(a[i]%2!=0)
- cont1++;
- for(i=0;i<m;i++)
- if(b[i]%2!=0)
- cont2++;
- l=cont1+cont2;
- /*Inizio a riempire la terza sequenza con gli elementi dispari della prima: */
- for(i=0;i<n;i++)
- if(a[i]%2!=0){
- c[j]=a[i];
- j++;
- }
- /*Continuo a riempire la terza sequenza con gli elementi dispari della seconda tenendo conto di dove sono arrivato: */
- for(i=0;i<m;i++)
- if(b[i]%2!=0){
- c[j]=b[i];
- j++;
- }
- /*Ora mando in output tutta la sequenza: */
- printf("La fusione di tutti e soli gli elementi dispari delle due sequenze e' data dalla sequenza -> ");
- for(i=0;i<l;i++)
- printf("%d ", c[i]);
- printf("\n");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement