Je suis toujours un codeur débutant, et j'ai de la difficulté à écrire un programme pour vérifier si une chaîne est un palindrome ou non en utilisant seulement les bibliothèques <stdio.h>
et <stdlib.h>
.C programme pour palindrome
La chaîne peut contenir au plus 30 caractères. Nous devons supposer que la chaîne peut prendre des chiffres, des caractères de ponctuation et des lettres. En outre, supposons qu'il n'y a pas d'espaces dans la chaîne. Doit différencier les caractères majuscules et minuscules. Donc "madame" serait un palindrome, mais "MaDam" ne serait pas un palindrome. La chaîne se termine par un terminateur null. Salut, donc quand je compile avec gcc -Wall. J'ai ces erreurs. Quelqu'un peut-il s'il vous plaît expliquer comment je peux réparer ces erreurs? Merci pour votre temps.
s_palindrome.c:24:15: warning: variable 'length' is used uninitialized whenever
'for' loop exits because its condition is false
[-Wsometimes-uninitialized]
for (a=0; **a<30**; a++){
is_palindrome.c:36:18: note: uninitialized use occurs here
for (a=0; **a<(length/2)**; a++){
is_palindrome.c:24:15: note: remove the condition if it is always true
for (a=0; **a<30**; a++){
is_palindrome.c:12:18: note: initialize the variable 'length' to silence this
warning
**int a, length;**= 0
code
#include <stdio.h>
#include <stdlib.h>
int main(){
char string [30];
int a, l;
int p=1;
printf("Enter a string to test: \n");
scanf("%s", string);
for (a=0; a<30; a++){
if (string[a]=='\0'){
l=a;
break;
}
}
for (a=0; a<l/2; a++){
if (string[a]!=string[l-1-a]){
p=0;
}
}
if (p){
printf("%s is a palindrome\n", string);
}
else {
printf("%s is not a palindrome\n", string);
}
return 0;
}
Vous avez montré du code mais vous ne l'avez pas mentionné. Est-ce que ça marche? Si non, quel est son comportement? Autrement dit, pourquoi posez-vous une question très générale plutôt que de la relier au code que vous avez écrit? – kaylum
Il y a plusieurs erreurs, à la fois syntaxiques et logiques, dans le code que vous avez posté. –
Je vote à contrecoeur pour rouvrir, car la raison de fermeture ne s'applique plus. Notez que la réponse à votre question est dans l'avertissement lui-même: 'note: initialisez la variable 'length' pour faire taire cet avertissement' –