10/10/08 11:24
bigjohn
Salve a tutti.
Innanzitutto ringrazio per la cortese disponibilità tutti coloro disposti a trovare una soluzione a questo quesito.
Intanto vediamo la seguente definizione:
una parola è palindroma quando letta "da sinistra a destra" o "da destra a sinistra" presenta la stessa sequenza di caratteri.
Esempi di parole palindrome sono:
- anna
- otto
- acca
- erre
- esse
- ossesso
- esose
ecc.
Il programma C propostomi, e' di verificare se una parola è palindroma.
Purtroppo il codice sottostante non va bene in quanto mi da sempre la medesima risposta "la sequenza è palindroma"
indipendentemente che la parola digitata sia o meno palindroma.
Riuscite cortesemente a trovare l'errore?
//---- inizio codice ----------
#include <stdio.h>
#include <stdlib.h>
#define MAX 32
int main()
{
char vett[MAX];
int lvet;
int i, j;
do {
printf("Inserire la lunghezza della sequenza: " //di quanti caratteri è composta la parola?
scanf("%d", &lvet);
} while ((lvet>MAX) || (lvet<=0));
printf("Inserire la sequenza:\n" //qual e' la parola da verificare?
for (i=0; i<lvet; i++)
scanf("%c", & vett[i]);
i = 0;
j = lvet - 1;
while((i < lvet) && (vett[i] == vett[j]))
{
i += 1;
j -= 1;
}
if (i >= lvet)
printf("La sequenza e' palindroma.\n"
else
printf("La sequenza non e' palindroma.\n"
system("pause"
}
//---- fine codice ---------------
Grazie per l'attenzione.
Gianni.
Innanzitutto ringrazio per la cortese disponibilità tutti coloro disposti a trovare una soluzione a questo quesito.
Intanto vediamo la seguente definizione:
una parola è palindroma quando letta "da sinistra a destra" o "da destra a sinistra" presenta la stessa sequenza di caratteri.
Esempi di parole palindrome sono:
- anna
- otto
- acca
- erre
- esse
- ossesso
- esose
ecc.
Il programma C propostomi, e' di verificare se una parola è palindroma.
Purtroppo il codice sottostante non va bene in quanto mi da sempre la medesima risposta "la sequenza è palindroma"
indipendentemente che la parola digitata sia o meno palindroma.
Riuscite cortesemente a trovare l'errore?
//---- inizio codice ----------
#include <stdio.h>
#include <stdlib.h>
#define MAX 32
int main()
{
char vett[MAX];
int lvet;
int i, j;
do {
printf("Inserire la lunghezza della sequenza: " //di quanti caratteri è composta la parola?
scanf("%d", &lvet);
} while ((lvet>MAX) || (lvet<=0));
printf("Inserire la sequenza:\n" //qual e' la parola da verificare?
for (i=0; i<lvet; i++)
scanf("%c", & vett[i]);
i = 0;
j = lvet - 1;
while((i < lvet) && (vett[i] == vett[j]))
{
i += 1;
j -= 1;
}
if (i >= lvet)
printf("La sequenza e' palindroma.\n"
else
printf("La sequenza non e' palindroma.\n"
system("pause"
}
//---- fine codice ---------------
Grazie per l'attenzione.
Gianni.
aaa