-3
char s[100];
//char t[100];
int count = 1;
int j=0;
int x,i;
cin >>s;
x=strlen(s);
//cout <<x <<endl;
cout <<s[j] <<endl;
i=x-1;
cout <<s[i] <<endl;
for (int i = x-1; i <= 0; i--)
{
if (s[j] != s[i])
{
count = 0;
}
j++;
}
if (count )
{
cout <<"YES";
}
else
{
cout <<"NO";
}
return 0;
私は与えられた文字列が回文かどうかを知りたいですか?このコードで何が間違っていますか?私は、パリンドロームが入力されている場合はYESを、文字列がパリンドロームでない場合はNOを出力すると予想しています。しかし、常にYESを出力します。エラーはありません。文字列が回文かどうかチェックしたい
ようこそスタックオーバーフローに!あなたのコードが「うまくいかない」方法を詳しく説明できますか?あなたは何を期待していましたか、実際何が起こったのですか?例外/エラーがある場合は、それが発生した行と例外/エラーの詳細を投稿してください。これらの詳細を入力または編集してください。 – Machavity
条件「i <= 0」は最初から偽です。ループは決して実行されません。 –
'for(int i = x-1; i <= 0; i - )':これは、空または1文字の文字列を入力した場合にのみ発生する 'i <= 0'までループします。したがって、forループは決して実行されず、 'count'は常に' 1'です。 –