Problemino menù array e funzioni

di il
4 risposte

Problemino menù array e funzioni

Salve a tutti, stavo completando un menù piccolino dove per ogni scelta devo utilizzare una funzione so come si svolge ma mi dà un problema di cui non capisco l'origine mi potreste aiutare???
#include<iostream>
using namespace std;
int menu(void);
void alunni(float a[],int d);
void inserisci(float a[],int d);
void stampa(float a[],int d);
void media();
int main(){
	float array[100];
	int dim;
	int scelta;
	do{
		menu();
		cout<<"Digita:";
		cin>>scelta;
		
		switch(scelta){
			case 1:
				alunni(array,dim);
					break;
				case 2 :
				inserisci(array,dim);
					break;
					case 3 :
						stampa(array,dim);
							break;
							case 4:
								break;
								case 5:
									break;
		}
	}while(scelta!=6);
	
	
}
int menu(void){
	cout<<"---Menu---"<<endl;
	cout<<"1. Per inserire il numero degli alunni"<<endl;
	cout<<"2. Inserisci i voti"<<endl;
	cout<<"3. Stampare i voti"<<endl;
	cout<<"4. Per calcolar la media dei voti inseriti"<<endl;
	cout<<"5. Calcola il numero di alunni insufficienti"<<endl;
		cout<<"6. Esci"<<endl;
			cout<<"Cosa vuoi fare?\n"<<endl;
	
	
}
void alunni(float a[],int d){
		cout<<"Quanti alunni vuoi votare?"<<endl;
					cin>>d;

		}
void inserisci(float a[],int d){
	
	cout<<"Inserisci voti"<<endl;
		for(int i=0;i<d;i++){
		
		cin>>a[i];}
			}

			void stampa(float a[],int d) {
			for (int i=0;i<d;i++){
				cout<<a[i];}
				}
	


void media();

Il problema nasce quando scelgo qualcosa oltre la scelta numero uno, non mi legge i for in pratica

4 Risposte

  • Re: Problemino menù array e funzioni

    void alunni(float a[],int d)
    Così il parametro d lo passi per valore: la variabile locale int d viene inizializzata con il valore di dim (indefinito) e poi viene "buttata via" quando esci dalla funzione.
    Se vuoi che il valore di d venga conservato nella variabile dim al di fuori della funzione, allora devi passarlo per riferimento
    void alunni(float a[],int &d)
  • Re: Problemino menù array e funzioni

    Probabilmente hai impostato male la funzione dato che gli argomenti sono sbagliati. Dovrebbe essere

    int alunni()

    e al suo interno alla fine dovresti scrivere

    return d;

    chiamando la stessa opportunamente nel main ovvero

    dim=alunni();
  • Re: Problemino menù array e funzioni

    oregon ha scritto:


    Probabilmente hai impostato male la funzione dato che gli argomenti sono sbagliati. Dovrebbe essere

    int alunni()

    e al suo interno alla fine dovresti scrivere

    return d;

    chiamando la stessa opportunamente nel main ovvero

    dim=alunni();
    Quindi tipo
    int alunni(float a)? O senza parametri come hai scritto te?
  • Re: Problemino menù array e funzioni

    Ragiona ... nella funzione alunni a che ti serve passare float a?

    Ovviamente nella funzione alunni la d è una variabile locale

    int d;
Devi accedere o registrarti per scrivere nel forum
4 risposte