我還是一個初學者編碼器,我在編寫程序時遇到了麻煩,要檢查一個字符串是否是迴文,只使用<stdio.h>
和<stdlib.h>
庫。迴文的C程序
該字符串最多可以佔用30個字符。我們必須假定字符串可以帶有數字,標點符號和字母。另外,假設字符串中沒有空格。必須區分大小寫字符。所以「夫人」將是一個迴文,但「MaDam」不會是迴文。該字符串以空終止符結束。 嗨,所以當我用gcc -Wall編譯時。我得到這些錯誤。有人可以解釋我如何解決這些錯誤?感謝您的時間。
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
代碼
#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;
}
您已經顯示了一些代碼,但沒有提及它。它工作嗎?如果不是,它的行爲是什麼?那就是,你爲什麼要問一個非常普遍的問題,而不是將它與你寫的代碼聯繫起來? – kaylum
在您發佈的代碼中有幾處語法和邏輯錯誤。 –
由於緊密原因不再適用,我不情願投票重新開放。請注意,你的問題的答案是在警告本身:'注意:初始化變量的'長度'來消除這個警告' –