15/04/2023 - oregon ha scritto:
No, pensa ad una cosa semplice
Devi confrontare i primi 5 caratteri di a con gli ultimi 5
Il primo con l'ultimo, il secondo con il penultimo…
lo potrei fare mettendo i<5 nella condizione del secondo for (però cosi non stamperei tutti i numeri, nel mio codice confronto i primi 10 con gli ultimi 10 che dà gli stessi risultati (riesce a capire la presenza di palindromi o meno) ma in più tempo). Se intendi altro non riesco a capire.
Sul sito dove prendo gli esercizi danno questo codice come risposta, che è sicuramente migliore del mio( si creano 2 variabilo in meno e l'if funziona in modo tale da far uscire da for appena riscontri che l array non è palindromo).
#include <iostream>
using namespace std;
int main()
{
int a[10];
for (int i=0;i<10;i++)
{
cout<<"inserisci il contenuto per la cella "<<i<<" ";
cin>>a[i];
}
bool palindromo=true;
for(int i=0;i<5;i++)
{
if(a[i]!=a[9-i])
{
palindromo=false;
}
}
if(palindromo)
{
cout<<"l'array e' palindromo";
}
else
{
cout<<"l'array NON e' palindromo";
}
}