Salve. Devo svolgere questo esercizio: Verifica se un vettore di caratteri è palindromo (cioè se risulta uguale partendo da sinistra o da destra). Questo è il codice:
#include <iostream>
#include <stdlib.h>
using namespace std;
void crea_vett(char [],int);
void scrivi_vett(char [],int,int);
int main()
{
char v[50],q[50];
int i,n,x,c;
bool pal=false;
do
{
cout<<"Quanto e\' grande la parola da verificare?"<<endl;
cin>>n;
} while (n<2 || n>50);
crea_vett(v,n);
cout<<" "<<endl;
for (i=0,x=n-1;i<x && pal==true;i++,x--)
{
if(v[i]==v[x])
pal=true;
else
pal=false;
}
if(pal=true)
cout<<"La parola e\' palindroma"<<endl;
else
cout<<"La parola non e\' palindroma"<<endl;
scrivi_vett(v,i,n);
system("pause");
return 0;
}
void crea_vett(char a[50],int y)
{
int h;
for(h=0;h<y;h++)
{
cin>>a[h];
}
}
void scrivi_vett(char a[50],int l,int n)
{
for(l=0;l<n;l++)
{
cout<<a[l]<<" "<<endl;
}
}
L'errore è che scrive sempre che la parola è palindroma anche quando non lo è. Grazie. Ciao