Funzione che inizializza un vettore

di Anonimizzato15598 il
11 risposte
Salve devo creare una funzione che inizializza un vettore

ho provato in questo modo ma con insuccesso
#include <cstdlib>
#include <iostream>

using namespace std;
void inizializza_vettore(&int vett[],&int n){

cout<<"inserisci lunghezza vettore "<<endl;
cin>>n;
for (int i=0;i<n;i++){
    cout<<"inserisci elemento"<<i<< ": "<<endl;
    cin>>vett[i];}
    ]
int main(int argc, char *argv[])
{int vett[],n
inizializza_vettore(vett[],n)



    system("PAUSE");
    return EXIT_SUCCESS;
}

11 Risposte

  • Ma quando lo allochi il vettore?
  • oregon ha scritto:


    Ma quando lo allochi il vettore?
    ora l'ho abbellito un po',ma comunque mi da errori :
    ecco il codice
    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    const int maxdim = 50;
    int dim;
    //funzione per la richiesta di un vettore//
    int dimensione_vettore()
    {
        do
        {
        cout<<"inserire lunghezza vettore(max = madx dim)...: ";
        cin>>dim;}
        while((dim <1) || (dim > maxdim));
        return dim;}
        //funzione per il caricamento di un vettore//
        void carica_vettore(int v[],int dimvet){
             for (int i=0;i<dimvet;++i)
             cout<<"inserisci elemento"<<i<< ": "<<endl;
        cin>>v[i];}
         //funzione per la visualizzazione di un vettore//
        void visualizza_vettore(int v[],int dimvet){
             cout<<"\n----------visualizza vettore----------"<<endl;
             for (int i=0;i<demvet;++i)
             {cout<<"elemento di posto"<<i+1<<"...."<<v[i]<<endl;}
             }
        
    int main(int argc, char *argv[])
    {int array[maxdim] = {0}; //inizializzazione vettore//
    {dimensione_vettore();
          carica_vettore(array,dim);
           visualizza_vettore(array,dim);
    
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    
  • Quali errori?

    Se li esamini uno per uno e li affronti puoi risolverli ... no ?
  • oregon ha scritto:


    Quali errori?

    Se li esamini uno per uno e li affronti puoi risolverli ... no ?
    gli errori si trovano :
    qui
    for (int i=0;i<dimvet;++i)
    qui
       cin>>v[i];} 
    e qui :
    for (int i=0;i<demvet;++i)
    e sono collegati probabilmente alla variabile "i"
    ma non riesco a risolverli
  • Per rimediare agli errori devi leggere il messaggio del compilatore.

    Cosa dice il primo?
  • oregon ha scritto:


    Per rimediare agli errori devi leggere il messaggio del compilatore.

    Cosa dice il primo?
    per
    cin>>v[i];}
    dice questo che non so cosa significa :
    name lookup of `i' changed for new ISO `for' scoping
     for (int i=0;i<dimvet;++i)
    per questo dice:
    using obsolete binding at `i'

    per quell altro for ho risolto,avevo commesso un errore di battitura
  • Nelle linee
    
    for (int i=0;i<dimvet;++i)
             cout<<"inserisci elemento"<<i<< ": "<<endl;
             cin>>v[i];
    
    pensi che la cout e la cin stiano all'interno del ciclo?
  • oregon ha scritto:


    Nelle linee
    
    for (int i=0;i<dimvet;++i)
             cout<<"inserisci elemento"<<i<< ": "<<endl;
             cin>>v[i];
    
    pensi che la cout e la cin stiano all'interno del ciclo?
    si,avevo dimenticato la parentesi graffa e nei cili for non mi dà più problemi,ora però sono apparsi due nuovi errori
    qui
     void visualizza_vettore(int v[],int dimvet){
    errori per questa parte
    a function-definition is not allowed here before '{' token
    expected `,' or `;' before '{' token
    e qui
    {int array[maxdim] = {0}; //inizializzazione vettore//
    gli stessi errori per quest'ultima
    a function-definition is not allowed here before '{' token
    expected `,' or `;' before '{' token
  • Controlla attentamente tutte le parentesi { e }

    Fai attenzione che non ne manchi qualcuna ...

    Scrivi il codice in maniera più ordinata, separa meglio le varie funzioni e troverai il problema.
  • oregon ha scritto:


    Controlla attentamente tutte le parentesi { e }

    Fai attenzione che non ne manchi qualcuna ...

    Scrivi il codice in maniera più ordinata, separa meglio le varie funzioni e troverai il problema.
    ho risolto,per chi serve inserisco il codice corretto
    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    const int maxdim = 50;
    int dim;
    //funzione per la richiesta di un vettore//
    int dimensione_vettore()
    {
        do
        {
        cout<<"inserire lunghezza vettore(max = maxdim)...: ";
        cin>>dim;}
        while((dim <1) || (dim > maxdim));
        return dim;}
        //funzione per il caricamento di un vettore//
        void carica_vettore(int v[],int dimvet){
             for (int i=0;i<dimvet;++i){
             cout<<"inserisci elemento"<<i<< ": "<<endl;
        cin>>v[i];}}
         //funzione per la visualizzazione di un vettore//
        void visualizza_vettore(int v[],int dimvet){
             cout<<"\n----------visualizza vettore----------"<<endl;
             for (int i=0;i<dimvet;++i)
             {cout<<"elemento di posto"<<i+1<<"...."<<v[i]<<endl;}
             }
        
    int main(int argc, char *argv[])
    {int array[maxdim] = {0}; //inizializzazione vettore//
    dimensione_vettore();
          carica_vettore(array,dim);
           visualizza_vettore(array,dim);
    
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    
    
    mi scuso per il tempo che ho fatto perdere,credevo che ci fossero errori logici perciò mi ero allarmato
  • Invece la cosa è servita a risolvere da solo il problema ... come vedi, facendo un po' d'ordine nel codice e impegnandosi a valutare i messaggi d'errore, si può risolvere in autonomia ...
Devi accedere o registrarti per scrivere nel forum
11 risposte