[C++] verificare matrice con cornici decrescenti

axios1
Ho un problema col seguente esercizio:
Data una matrice NxN di numeri interi positivi, si dice che ha le “cornici decrescenti” se per ogni cornice, a partire da quella più esterna, ogni elemento è strettamente maggiore di ogni elemento di quella immediatamente più interna.
ESEMPIO: la matrice qui illustrata, nella quale, a beneficio del lettore, sono state evidenziate le cornici concentriche, non gode della proprietà su illustrata: infatti la seconda cornice contiene due elementi (quelli di valore 3 e 4, sottolineati in figura), che non sono più piccoli di ogni elemento della prima cornice. Anche la terza cornice viola la proprietà: l’unico elemento che ne fa parte, il 7, sottolineato in figura, non è più piccolo di ogni elemento della seconda cornice.
Si scriva in C++ una funzione che, ricevuta una matrice di numeri interi positivi, verifichi se questa ha le cornici decrescenti.

3 3 3 3 3
3 2 2 2 3
8 3 7 2 3
3 2 2 4 3
3 3 3 3 3



non riesco a capire come fare a passare da una cornice all'altra....cioè prendere il primo elemento della prima cornice , e poi confrontarlo con quelli della cornice + interna e così via....mi potete dare una mano??

Risposte
apatriarca
Il mio consiglio è quello di agire per gradi:
1. calcolare il massimo e minimo di una cornice (partendo ad esempio da quella più esterna)
2. confrontare il massimo appena calcolato con il minimo della cornice subito più esterna

axios1
Ma bisogna vedere se "ogni elemento è strettamente maggiore di ogni elemento di quella immediatamente più interna"...cioè bisogna prendere tutti gli elementi della matrice più esterna e confrontarli con tutti quelli della cornice + interna...

apatriarca
È sufficiente verificare se il massimo della riga interna è stressamente minore del minimo della riga successiva..

axios1
Capito...Grazie mille :)

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.