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

    Problema con le funzioni c++

    Salve ragazzi, volevo sapere se si poteva richiamare la variabile di una funzione...
    codice:
    #include <cstdlib>#include <iostream>
    #include <ctime>
    #define MIOMAX 500
    using namespace std;
    int carica();
    int caricaM();
    int caricaA();
    int opera();
    int media();
    int massimo();
    int minimo();
    int main(int argc, char *argv[])
    {  int scelta;
       
    do
    	{
                system("CLS");
                //Intestazione
                cout<<("---------------------------------------------")<<endl;
                cout<<("|                Benvenuto                  |")<<endl;
                cout<<("---------------------------------------------")<<endl<<endl<<endl;
                
                //Visualizza menu'
                cout<<("---------------------------------------------")<<endl;
                cout<<("1.Carica N numeri")<<endl;    
                cout<<("2.Opera su questi numeri")<<endl;    
                cout<<("3.Funzione n/3")<<endl;   
                cout<<("0.Esci")<<endl;  
                cout<<("---------------------------------------------")<<endl;   
                
                //Scleta 
                cout<<"Inserisci qui la tua scelta   ";
                do
                cin>>scelta;
                while((scelta<0) || (scelta>3));
              
               //Opzioni sclete
               switch(scelta)
               {   
               case 1:
                    carica();
                    break;
               }  
        }
        while(scelta !=0);
       
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    //***********************************************************
    int carica()
    {
        int scelta;
        cout<<"1.Carica numeri manualmente"<<endl;
        cout<<"2.Carica numeri automaticamente"<<endl;
        cout<<"Inserisci qui la tua scelta   ";
        do
           cin>>scelta;
        while((scelta<0) || (scelta>2));
          
            switch(scelta)
               {   
               case 1:
                    caricaM();
                    break;
               case 2:
               		caricaA();
               		break;
    		   }  
    }
    //*************************************************
    int caricaM()
    {
    int x;
    cout<<"Quanti numeri vuoi caricare?  ";
    cin>>x;
     int V[x];
     int i;
     
     
     cout<<"\nInserisci i "<<x<<" numeri"<<endl;
     for(i=0; i<x; i++)
      cin>>V[x];
    }        
    //***************************************************
    int caricaA()
    {
    int x;
    int nrandom;
    cout<<"Quanti numeri vuoi caricare?  ";
    cin>>x;
     int V[x];
     int i;
     
        nrandom = x;
       srand(time (NULL));
    
    
        for (i=0;i<nrandom;i++)
        {
    	    V[i] = rand() % MIOMAX;
            cout<<i+1<<"   numero   "<<V[i]<<endl;
    	}
        cout<<"Il vettore e' stato caricato correttamente."<<endl;
    
    
        system("PAUSE");
    }
    //*********************************************************   
    
    
    int opera()
    {	int scelta;
    	cout<<"Prima di operare, devi caricare i tuoi numeri"<<endl;
    	cout<<"Se non hai caricato i numeri del vettore scelgi l'operazione numero 4"<<endl;
    	cout<<"1.Media"<<endl;
    	cout<<"2.Massimo"<<endl;
    	cout<<"3.Minimo"<<endl;
    	cout<<"4.Carica"<<endl;
    	
    	cout<<"Inserisci qui la tua scelta   ";
      do
         {
           cin>>scelta;
        
          
            switch(scelta)
               {   
               case 1:
                    media();
                    break;
               case 2:
               		massimo();
               		break;
    		   case 3:
    		   		minimo();
    		   		break;
    		   	case 4:
    		   		carica();
    		   		break;
    		   }  
         }
    while((scelta<0) || (scelta>4));
    
    
     system("PAUSE");
    }
    //****************************************************************
    int media()
    {
    caricaA(V[x]);
    caricaM(V[x]);
    	
    
    
    }
    Allora ragazzi volevo fare una cosa, del tipo che l'utente deve inserire quanti numeri vuole inserire e non che gli venga dato un limite...
    Aiutatemi...
    Grazie in anticipo

  2. #2
    Devi usare l'allocazione dinamica, nello specifico o usi new[]/delete[] per allocare un array, o usi std::vector che si occupa lui di tutta la faccenda. Comunque per media, massimo e minimo non è necessario memorizzare nessuno degli elementi, ti bastano due variabili int per massimo/minimo e una variabile double e una int per la media.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Ok grazie

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