그래서 단어를 입력해야하는 프로그램을 만들었습니다.이 프로그램은 회귀 식 (두 가지 방법 모두 같은 단어)인지 아닌지를 표시합니다.Palindrome 프로그램의 배열
#include <stdio.h>
#include <string.h>
int main(int argc, const char * argv[]){
char word;
int length, counter;
printf("Please enter a word: ");
scanf("%c", &word);
int flag = 1;
for (counter = 0; counter < length && flag; counter++) {
printf("%c\t %c", word[counter], word[length - counter])
if (word[counter] == word[length - counter - 1]){
flag = 0;
}
}
if (flag) {
printf("%c is a palindrome!", word);
}
else {
printf("%c is NOT a palindrome!", word);
}
}
각 글자가 나란히 표시되도록 설정했습니다. 문자가 같지 않으면 플래그가 "throw됩니다"(0으로 설정 됨) 프로그램이 종료됩니다. "단어는 회문이 아닙니다!"
word [counter]가 말한 부분에 오류가 있습니다. 이는 subscript 된 값이 아님을 나타냅니다. 이 작업을하려면 어떻게해야합니까? 내가 잘못하고있는 다른 것이 있습니까?
'문자 워드는,'숯하지 배열!? –
'char word'는'word'가 문자라고 말합니다. 'char word []'는 단어를'array'로 만듭니다. –
나는'flag = 0;을 추천한다. 'for'조건에서 테스트하기보다는 'break'를 사용하십시오. 그것은 누군가 당신의 코드를 더 쉽게 읽을 수있게 해줍니다. 문자 배열을 올바르게 사용하지 않는다는 것이 이미 지적되었습니다. 또한 왜 [counter]와'[length-counter]'를 출력하지만'[length-counter-1] '과 비교할 지 모르겠습니다. 'counter == 0 '(마지막 유효한 요소가'[length-1]'이래로.) – Floris