PDA

Visualizza la versione completa : Problema con le funzioni c++


Lanciator
28-11-2013, 22:17
Salve ragazzi, volevo sapere se si poteva richiamare la variabile di una funzione...

#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 :D

MItaly
28-11-2013, 23:18
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.

Lanciator
29-11-2013, 14:35
Ok grazie :D

Loading