Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [C] Acquisizione array

    qualkuno può aiutarmi??
    nn ho idea da dv partire!!

    come potrei acquisire un array tramite funzione?

    grazie mille anticipatamente!

  2. #2
    Acquisire da dove?

  3. #3
    in pratica nn mi stampa l'array dv averlo acquisito nn trovo l'errore
    !!!!!!!!

    #include <stdio.h>

    int fusione(int n_val1);

    main ()
    {
    int n_val1; //numero di valori del 1° array.
    //Inserimento dei valori del 1° e 2° array da fondere.
    printf ("Inserite il numero di valori del 1 array: ");
    scanf ("%d",&n_val1);
    n_val1=fusione(n_val1);
    system("pause");
    }

    int fusione(int n_val1)
    {
    int vet1[30]; //1° array da fondere.
    int vet2[30]; //2° array da fondere.
    int vettore[60]; //array finale.
    int n_val2; //numero di valori del 2° array.
    int i,j,k=1; //indici array.
    for (i=1;i<=n_val1;i++){
    printf ("Inserite il %d valore: ",i);
    scanf ("%d",&vet1[i]);
    }
    printf ("Inserite il numero di valori del 2 array: ");
    scanf ("%d",&n_val2);
    for (j=1;j<=n_val2;j++){
    printf ("Inserite il %d valore: ",j);
    scanf ("%d",&vet2[j]);
    }
    //Fusione dei 2 array dati in un unico array finale e stampa di quest'ultimo.
    printf ("\nL'array finale e' il seguente:\n");
    while ((i<=n_val1)&&(j<=n_val2)){
    if (vet1[i]<vet2[j]){
    vettore[k]=vet1[i];
    printf ("%d ",vettore[k]);
    i++;
    }
    else{
    vettore[k]=vet2[j];
    printf ("%d ",vettore[k]);
    j++;
    }
    k++;
    }
    if (j>n_val2){
    while (i<=n_val1){
    vettore[k]=vet1[i];
    printf ("%d ",vettore[k]);
    i++;
    }
    }
    else{
    while (j<=n_val2){
    vettore[k]=vet2[j];
    printf ("%d ",vettore[k]);
    j++;
    }
    }

    return n_val1;

    }

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Quando esprimerai, in italiano e con frasi di senso compiuto, quello che devi fare con il programma e il problema che hai, allora ti si potra' dare una mano ...

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    569
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    int fusione(int n_val1);
    
    int main ( void )
    {
       int n_val1; //numero di valori del 1° array.
       
       //Inserimento dei valori del 1° e 2° array da fondere.
       printf ("Inserite il numero di valori del 1 array: ");
       scanf ("%d",&n_val1);
       
       n_val1=fusione(n_val1);               // a cosa serve questo assegnamento?
       
       printf("\n\n\n");                // miglioriamo la formattazione
       system("pause"); 
    
    }
    
    int fusione(int n_val1)
    {
        int vet1[30]; //1° array da fondere.
        int vet2[30]; //2° array da fondere.
        int vettore[60]; //array finale.
        int n_val2; //numero di valori del 2° array.
        int i,j,k=0; //indici array.
    
        for ( i=0 ; i<n_val1 ; i++ ){               // gli indici deveno partire da 0
           printf ("Inserite il %d valore: ",i+1);
           scanf ("%d",&vet1[i]);
           }
    
        printf ("Inserite il numero di valori del 2 array: ");
        scanf ("%d",&n_val2);
        
        for ( j=0 ; j<n_val2 ; j++ ){                  // gli indici devono partire da 0
           printf ("Inserite il %d valore: ",j+1);
           scanf ("%d",&vet2[j]);
           } 
       
       //Fusione dei 2 array dati in un unico array finale e stampa di quest'ultimo.
       printf ("\nL'array finale e' il seguente:\n");
       
       i=0; j=0;                               // devi azzerare gli indici 
       
       while (k<n_val1+n_val2){           // devi terminare quando k=n_val1+n_val2
           if (vet1[i]<vet2[j]){ 
                vettore[k]=vet1[i];
                printf ("%d ",vettore[k]);
                i++;
                }
           
           else{
               vettore[k]=vet2[j];
               printf ("%d ",vettore[k]);
               j++;
               }
          
           k++;
       }
    
       if (j>n_val2){                       
           while (i<n_val1){
               vettore[k]=vet1[i];
               printf ("%d ",vettore[k]);
               i++;
               }
        }
       
       else{
           while (j<n_val2){                
              vettore[k]=vet2[j];
              printf ("%d ",vettore[k]);
              j++;
              }
           }
    
       return n_val1;          // perchè ritorni questo valore??
                               // è un valore che hai già passato alla funzione 
    }

    La fase di inserimento potrebbe essere migliorata.

    Ciao ciao

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    12
    Ciao a tutti!!! sono nuova di qui... avrei un problema che non riguarda esattamente l'ascquisizione di un array ma comunque c'entra con gli array(non volevo aprire un nuovo topic perchè forse già esiste qualcosa di simile e non me ne sono accorta...perciò scrivo qui...)

    Dopo aver dichiarato due array, ad esempio a e b, pongo a[0]=b[0] e poi faccio cout<<b[0] per stampare il primo elemento di b, ma escono strani numeri... dov'è che sbaglio???grazie...

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    E invece devi aprire un nuovo thread ... quello a cui ti sei collegata non c'entra nulla con il tuo problema ...

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    12
    ...vabbè apro il nuovo thread...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.