Alcuni dubbi su richiami a funzioni

di il
1 risposte

Alcuni dubbi su richiami a funzioni

Stavo provando a scrivere questa funzione che data una matrice di imput calcolasse la media degli elementi non perimetrali. esercizietto piuttosto semplice, ma ho qualche problema con la compilazione e qualche dubbio sul richiamo della funzione. posto il codice e lo condisco di commenti sui dubbi e sull'errore. grazie mille
il codice è:
#include <iostream>
using namespace std;
#define MAX 50
typedef float matrice[MAX][MAX];
					
float media_el_non_perimetrali (matrice m[][MAX])   //è giusta la dichiarazione di parametro formale?
{int n; cout<<"inserire l'ordine della matrice"<<endl;
cin>> n;
if (n<=0)
	{cout<<"impossibile lavorare su matrici di ordine"<<n;
	return 0;}
else
	{if (n<=2)
	{cout<<"non esistono elementi non perimetrali";
	return 0;}
	else
	{for (int i=0, n; i<n; i++)					//inserimento matrice
		{for (int j=0, n; j<n; j++)
			{cout<<"inserire l'elemento di posizione "<<i<<" ; "<<j;
			cin >> m[i][j];}}}    //a questa riga di codice il compilatore da l'errore "no match for operator>>"
	float somma=0;				//qual è il problema?
	for (int i=1, n; i<(n-1); i++)			         
		{for (int j=1, n; j<(n-1); j++)
			somma=somma+m[i][j];}    //a questa riga il compilatore mi darà lo stesso problema di sopra?
	return somma/(n-1)*(n-1);
	}}


int main ()
{matrice mat; float risultato; risultato=media_el_non_perimetrali(mat);//è giusto il richiamo? con questo richiamo attivo  
cout<<"il risultato della media elementi non perimetrali e'"<<risultato;	//tutta la sequenza di istruzioni 
}													//codificate dalla funzione?

1 Risposte

  • Re: Alcuni dubbi su richiami a funzioni

    L'errore è in

    float media_el_non_perimetrali (matrice m[][MAX])

    che deve essere

    float media_el_non_perimetrali (matrice m)

    Ti consiglio di non usare scritture come questa

    typedef float matrice[MAX][MAX];

    che nascondono il tipo di dato e creano problemi (come vedi) di comprensione.
Devi accedere o registrarti per scrivere nel forum
1 risposte