Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    12

    (c++) problemi nella complilazione

    NEL PROGRAMMA CHE SEGUE:


    const int n=100;
    void leggi(int& ,char& );
    int main(int argc, char *argv[])
    {

    char vett[n];

    leggi(n,vett);

    system("PAUSE");
    return EXIT_SUCCESS;
    }


    void leggi(int & a,char & v){

    do{
    cout<<"\nDammi il numero di elementi da inserire nel vettore";
    cin>>a;
    if (a>100)
    cout<<"\nERRORE \nLa lunghezza massima e' di 100";
    }while(a>100);
    cout <<"\n Inserire il vettore:";
    for (int i=0; i<a; i++)
    cout<<" "<<v[i];

    }




    HO I SEGUENTI ERRORI DURANTE LA COMPILAZIONE:

    In function `int main(int, char**)':
    14 invalid initialization of reference of type 'int&' from expression of type 'const int'
    8 in passing argument 1 of `void leggi(int&, char&)'
    In function `void leggi(int&, char&)':
    31 invalid types `char[int]' for array subscript



    HO ASSOCCIATO I COLORI ALLE RIGHE DOVE C ERANO GLI ERRORI.
    CHI PUò AIUTARMI????
    M@ri@N

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Non vedo la necessità di passare 'vett' come reference. Passalo come puntatore. Inoltre 'n' l'hai messo const ma poi in leggi() lo modifichi (tramite il reference) e non va bene. Togli il const, almeno.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    12
    beh diciamo che io sono una via di mezzo mi puoi aiutare?
    M@ri@N

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Dato che n e' costante, non passarlo come parametro.

    Questo potrebbe essere un esempio di codice corretto, ma manca qualcosa ... l'input dei dati nel vettore ... l'ho segnalato nel codice ...

    codice:
    #include <iostream>
    
    using namespace std;
    
    const int N = 100;
    
    void leggi(char *v)
    {
      int a;
    
      do
      {
        cout << endl << "Dammi il numero di elementi da inserire nel vettore "; 
        cin >> a;
        if (a>N)
          cout << endl << "ERRORE " << endl << "La lunghezza massima e' di " << N << endl;
      } while(a>N);
    	
      cout << endl << "Inserire il vettore:";
    
      // Qui andrebbe il codice per inserire i dati nel vettore ...
    
      for (int i=0; i<a; i++) 
        cout << " " << v[i]; 
    }
    
    int main(int argc, char *argv[])
    {
      char vett[N];
    
      leggi(vett); 
    
      system("PAUSE");
    
      return EXIT_SUCCESS;
    }
    Inoltre, nella for che visualizza gli elementi del vettore, non si capisce se questi devono essere visualizzati come char o come valori numerici (ASCII corrispondenti).

    Infine, ho messo la main per ultimo nel codice per evitare di dover inserire il prototipo.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    12
    ma l istruzione endl serve solo nei vettori di carettere? perchè nei vettori con numeri interi non lo uso.

    Il passaggio del vettore l hai fatto con un puntatore vero?
    M@ri@N

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da mugnano
    ma l istruzione endl serve solo nei vettori di carettere? perchè nei vettori con numeri interi non lo uso.
    endl serve, in generale, per mandare in output un newline e fare il flush del buffer.

    Originariamente inviato da mugnano
    Il passaggio del vettore l hai fatto con un puntatore vero?
    Sì, l'espressione 'vett' indica già di per sé l'indirizzo dell'array.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    12
    grazie!!!!!!!!!!!!!
    M@ri@N

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 © 2025 vBulletin Solutions, Inc. All rights reserved.