Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Piccolo Problema
Forum - C/C++ - Piccolo Problema

Avatar
Distruttor (Normal User)
Newbie


Messaggi: 13
Iscritto: 28/12/2012

Segnala al moderatore
Postato alle 19:07
Giovedì, 25/04/2013
Salve mi sto esercitando con gli array, creando un paio di funzioni sui vettori... tra le tanto ho cercato di creare una funzione che permette di disporre in ordine crescente gli elementi del vettore e stamparli... eccovi il codice

Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. //Carica da tastiera dei valori al vettore.
  6. void Carica_Vettore (int array[],int elementi){
  7.         for(int i=0; i<elementi;i++){
  8.                 cout<<"Inserisci il valore "<< i+1<< " : ";
  9.                 cin>>array[i];
  10.         }
  11.         cout<<endl;
  12. }
  13.  
  14. //Stampa a monitor gli elementi del vettore.
  15. int Stampa_Vettore (int array[], int elementi){
  16.         for(int i=0; i<elementi; i++){
  17.                 cout<<"Valore numero " << i+1<<" : " <<array[i]<<endl; 
  18.                 }
  19.                 return 0;
  20. }
  21.  
  22. //Inverte l'ordine degli elementi del vettore e li stampa
  23. void Stampa_Invertito(int array[],int elementi){
  24.        
  25.         for(int i=elementi-1;i>=0;i--){
  26.                 cout<<array[i]<<endl;
  27.         }
  28. }
  29.  
  30. //Inverte il primo con l'ultimo, il secondo col penultimo e via dicendo e stampa il nuovo vettore.
  31. void Inverti (int array[],int elementi){
  32.         for(int i=0, f=elementi-1;i<elementi/2;i++,f--){
  33.                 int scambio=array[i];
  34.                 array[i]=array[f];
  35.                 array[f]=scambio;
  36.                
  37.         }
  38.         Stampa_Vettore(array,elementi);
  39. }
  40.  
  41. //Somma gli elementi del vettore.
  42. int Somma_Vettore(int array[],int elementi){
  43.         int somma=0;
  44.         for(int i=0;i<elementi;i++){
  45.                 somma+= array[i];
  46.         }
  47.         return somma;
  48. }
  49.  
  50. //Somma gli elementi di due vettori
  51. int Somma_2_Vettori(int array[],int array1[]){
  52.         int somma=0;
  53.         int vettoresomma[100];
  54.        
  55.        
  56.         cout<<"Vettore numero 1 "<<endl;
  57.         Carica_Vettore(array,6);
  58.        
  59.         cout<<"Vettore numero 2 "<<endl;
  60.         Carica_Vettore(array1,8);
  61.        
  62.         for(int i=0;i<8;i++){
  63.         vettoresomma[i]= array[i]+array1[i];
  64.         }
  65.        
  66.         for (int a=0; a<8;a++){
  67.                  somma+=vettoresomma[a];
  68.         }
  69. return somma;  
  70. }
  71.  
  72.  
  73. //Trova la media tra gli elementi di un vettore.
  74. float Media_Vettore(int array[],int elementi){
  75.        
  76.     float media=0;
  77.         media= (float)(Somma_Vettore(array,elementi))/(float)(elementi);
  78.         return media;
  79. }
  80.  
  81. //Ordina in ordine crescente gli elementi di un vettore.
  82. int Ordine_Crescente(int array[],int elementi){
  83.         Carica_Vettore(array,elementi);
  84.         int scambio=0;
  85.         for(int i=0;i<elementi; i++){
  86.                 for(int a=0;a<elementi;a++){
  87.                         if(array[a]>array[i]){
  88.                                 scambio=array[a];
  89.                                 array[a]=array[i];
  90.                                 array[i]=scambio;
  91.                                
  92.                         }
  93.                 }
  94.                
  95.         }
  96.         return array[elementi];
  97. }
  98.  
  99.  
  100.  
  101. int vettore[100];
  102. int vettore1[100];
  103. int main() {
  104.        
  105.         //Carica_Vettore(vettore,6);
  106.         //Stampa_Invertito(vettore,5);
  107.         //Inverti(vettore,6);
  108.        
  109.         //cout<<"La somma degli elementi dei due vettori vale : "<<Somma_2_Vettori(vettore,vettore1)<<endl;
  110.         //cout<< "La media degli elementi del vettore vale : "<<Media_Vettore(vettore,6);
  111.        
  112.         Stampa_Vettore (Ordine_Crescente(vettore,20),20);
  113.         return 0;
  114. }




Come vedete vorrei utilizzare la funzione Stampa_Vettore per visualizzare sullo schermo il vettore ordinato, ma mi da questo errore         

    In function 'int main()':
    [Error] invalid conversion from 'int' to 'int*' [-fpermissive]
    [Error]   initializing argument 1 of 'int Stampa_Vettore(int*, int)' [-fpermissive]


Come posso risolvere? Grazie in anticipo :k:

PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 19:32
Giovedì, 25/04/2013
Nelle ultime righe del main:

Codice sorgente - presumibilmente C/C++

  1. Ordine_Crescente(vettore,20)
  2.         Stampa_Vettore (vettore,20);
  3.         return 0;
  4. }



Ordine_Crescente, cosi' come e' impostato ora, ritorna un valore non inizializzato preso dalla fine dell'array (se volevi ritornare l'ultimo elemento dovevi fare un return array[elementi - 1]). Stamp_Vettore accetta un puntatore. Non puoi passare un intero e farlo passare per un puntatore. Ed e' proprio quello che il compilatore ti ha detto (invalid conversion from 'int' to 'int*').

Ultima modifica effettuata da pierotofy il 25/04/2013 alle 20:01


Il mio blog: https://piero.dev
PM Quote
Avatar
Distruttor (Normal User)
Newbie


Messaggi: 13
Iscritto: 28/12/2012

Segnala al moderatore
Postato alle 19:56
Giovedì, 25/04/2013
Molte grazie piero, ho risolto come mi hai proposto ;)

PM Quote
Avatar
lillogoal (Member)
Rookie


Messaggi: 28
Iscritto: 26/04/2013

Segnala al moderatore
Postato alle 20:19
Venerdì, 26/04/2013
Se ti interessa, su internet è pieno di algoritmi che ti permettono di riordinare degli elementi in un vettore. Se hai bisogno chiedi pure ;)

PM Quote