Ciao a tutti questa è la continuazione del thread precedente sempre con lo stesso programma solo con un problema diverso:
Il programma fa inserire i 2 vettori li ordina in modo crescente fa il merge dei due vettori in un terzo vettore..ora il mio problema è quello d far inserire all'utente altri vettori con i quali fare il merge con il merge precedente...però quando il programma chiede vuoi inserire altri vettori? risp con s o S non va avanti nell'esecuzione ma spunta premi un tasto per continuare ed esce...qualche idea per risolvere il problema Grazie tante per l'aiuto.
la parte in rosso è quella che mi dovrebbe permettere l'inserimento di altri vettori.
codice:
#include <stdio.h>
void gestione();
void inserimento(int, int *);
void ordinamento(int, int *);
void fusione(int, int, int *, int *, int *);
void visualizzazione(int, int *);

main()
{
      gestione();
      system("PAUSE");
}

void gestione()
{
     int a,b,c,d;
     char risp,invio;
     printf("Inserisci la lunghezza del primo vettore: ");
     scanf("%d",&a);
     printf("Inserisci la lunghezza del secondo vettore: ");
     scanf("%d",&b);
     printf("\n");
     int vett_1[a];
     int vett_2[b];
     c=a+b;
     int merge[c];
     inserimento(a, vett_1);
     inserimento(b, vett_2);
     ordinamento(a, vett_1);
     ordinamento(b, vett_2);
     fusione(a, b, vett_1, vett_2, merge);
     visualizzazione(c, merge);
     int x;
     do{
        printf("Vuoi inserire un altro vettore?(s/n): ");
        scanf("%c",&risp);
        getchar();
        if(risp=='s'){
                     printf("Inserisci la lunghezza del nuovo vettore: ");
                     scanf("%d",&d);
                     int vett_4[d];
                     for(x=0;x<a;x++){
                                      printf("%d%c elemento del vettore: ",x+1,248);
                                      scanf("%d",&vett_4[x]);
                                      }
                     for(x=0;x<a;x++){
                                      vett_1[x]=vett_4[x];
                                      vett_2[x]=merge[x];
                                      }
                     ordinamento(d, vett_1);
                     fusione(d, c, vett_1, vett_2, merge);
                     visualizzazione(d, merge);
                                        }
        else{
             printf("Premi invio per uscire");
             scanf("%c",&invio);
             }
             break;
        }
        while(risp=='s');
}

void inserimento(int z, int *vett)
{
     int i;
     for(i=0;i<z;i++){
                      printf("%d%c elemento del vettore: ",i+1,248);
                      scanf("%d",&vett[i]);
                      }
     printf("\n");
}

void ordinamento(int z, int *vett)
{
     int j,i,aux;
     for(j=0;j<z-1;j++)
     for(i=0;i<z-1;i++){
                      if(vett[i]>vett[i+1]){
                                            aux=vett[i];
                                            vett[i]=vett[i+1];
                                            vett[i+1]=aux;
                                            }
                      }
     printf("\nIl vettore adesso %c ordinato in modo crescente: \n",138);
     for(i=0;i<z;i++)
     printf("%d%c elemento del vettore: %d\n",i+1,248,vett[i]);     
}

void fusione(int a, int b, int *primo, int *secondo, int *fusione)
{
     int i,j,k;
     i=0;
     j=0;
     k=0;
     do{
        if(primo[i]<=secondo[j])
                                fusione[k++]=primo[i++];
        else
            fusione[k++]=secondo[j++];
        }
     while(i<a && j<b);
     if(i<a)
            for(;i<a;fusione[k++]=primo[i++]);
     else
         for(;j<b;fusione[k++]=secondo[j++]);
}

void visualizzazione(int c, int *fusione)
{
     printf("\nFusione dei due vettori: \n");
     int k;
     for(k=0;k<c;k++)
     printf("%d%c elemento della fusione dei due vettori: %d\n",k+1,248,fusione[k]);
}