Punto di sella in una matrice

di il
4 risposte

Punto di sella in una matrice

Buon giorno a tutti, non riesco a capire quale sia il meccanismo per fare in modo che un numero di una matrice sia il più piccolo della sua riga e allo stesso tempo il più grande. Vi lascio quello che sono riuscito a fare:
#include <iostream>
#define MAX 3
using namespace std;

//Prototipi//
void leggi_matrice(int matrice [MAX][MAX]);
void visualizza_matrice (int matrice[MAX][MAX]);
void punto_di_sella(int matrice[MAX][MAX]);

int main()
{
	int matrice[MAX][MAX];
	leggi_matrice(matrice);
	visualizza_matrice(matrice);
	punto_di_sella(matrice);
}

void leggi_matrice(int matrice [MAX][MAX])
{
	for (int i = 0; i < MAX; i++)
	{
		for (int j = 0; j < MAX; j++)
		{
			cout << "Inserire i valori della matrice: "; cin >> matrice[i][j];
		}
	}	
}

void visualizza_matrice (int matrice[MAX][MAX])
{
	for (int i = 0; i < MAX; i++)
	{
		for (int j = 0; j < MAX; j++)
		{
			cout << matrice [i][j] <<"\t";
		}
		cout << endl;
	}
}

void punto_di_sella(int matrice[MAX][MAX])
{	

	bool found = false;
	while(!found)
	{
		for(int i = 0; i < MAX; i++)
		{
			for (int j = 0; j < MAX; j++)
			{
				cout << "Il numero " << matrice [i];
				int max_riga = matrice[i][0];
				if (max_riga > matrice [i+1][0])
					found == true;
			}
		}
	}
	
}
Ho un po' di difficolta con i valori booelani . Se avete una guida dettagliata sui booelani da poter inviare vi ringrazio molto

4 Risposte

  • Re: Punto di sella in una matrice

    Booleani ..comincia a scriverlo correttamente
  • Re: Punto di sella in una matrice

    Ti ringrazio per la correzione, non ci avevo fatto caso. Per quanto riguarda il problema sopracitato sapresti darmi una mano?
  • Re: Punto di sella in una matrice

    Cosa intendi per punto di sella? Il minimo della riga e il massimo della colonna a cui l'elemento appartiene?

    Comunque DEVI studiarti bene le basi del linguaggio, è inutile che ti avventuri prima negli esercizi.

    Quello che sta a sinistra del prototipo della funzione si chiama return value. Usi void se non vuoi nessun return value, altrimenti sei obbligato ad esplicitarlo dentro la tua funzione.

    Ad esempio int main(void)

    solitamente finisce con un'istruzione "return 0;" che dà l'intero zero come return value

    Per il punto di sella dovrai fare qualcosa del tipo bool punto_di_sella(int matrice [MAX][MAX], int riga, int colonna)
    per valutare se l'elemento in posizione (riga,colonna) di matrice sia un punto di sella oppure no
    e dentro al tuo codice ci dovranno essere tanti "return true" oppure "return false"

    Magari prima di scrivere punto_di_sella potresti scrivere le funzioni
    int minimo_della_riga(int matrice [MAX][MAX], int riga)
    che ti restituisce il minimo della riga passata come parametro
    e
    int massimo_della_colonna(int matrice [MAX][MAX], int colonna)
    che ti restituisce il massimo della colonna passato come parametro

    Poi puoi chiamare queste funzioni dentro punto_di_sella stessa

    eccetera eccetera
  • Re: Punto di sella in una matrice

    Angelo99Franciamore ha scritto:


    Ti ringrazio per la correzione, non ci avevo fatto caso. Per quanto riguarda il problema sopracitato sapresti darmi una mano?
    Non hai spiegato bene il problema. Cosa è per te il punto di sella della matrice? E comunque cosa non riesci a fare e in quale parte di codice?

    Hai solo parlato di problemi con i booleani che però non si capisce cosa c'entrino...
Devi accedere o registrarti per scrivere nel forum
4 risposte