C++编写 回文数出错

C++编写 回文数出错 请指教
#include <iostream>
#include <string>
using namespace std;
using std::string;

int main()
{
string s;
string::size_type i;
int count=0;
cin>>s;
string::size_type N = 0;
N = s.size();
for (i=0;i<=s.size()/2;i++,N--)
{
if (s[i]==s[N-1])
{
++count;
}
else continue;

}
if (int(N/2)==count)
{
cout<<s<<"是回文数"<<endl;
}
else
{
cout<<s<<"不是回文数"<<endl;
}
getchar();
return 0;

}

这是我写的程序,但是输出结果就是不对,希望大家帮我看看,或者告诉我怎么去调试这个程序和思路?我自己去弄
------解决方案--------------------
if (s[i]==s[N-1])
{
++count;
}
else break;//没有必要继续下去了
------解决方案--------------------
用你的代码 试了几个数字 都显示正确
不知楼主输入什么数不对了。

另外 可以稍微简化下:
#include <iostream>
#include <string>
using namespace std;
using std::string;

int main()
{
string s;
string::size_type i;
//int count=0;
cin>>s;
string::size_type N = 0;
N = s.size();
for (i=0;i<=s.size()/2;i++,N--)
{
if (s[i]!=s[N-1])
{
cout<<s<<"不是回文数"<<endl;
getchar();
return 0;
}

}
cout<<s<<"是回文数"<<endl;
getchar();
return 0;

}

------解决方案--------------------
#include <iostream>
#include <string>
using namespace std;
using std::string;

int main()
{
string s;
string::size_type i;
int count=0;
cin>>s;
getchar();
string::size_type N = 0;
N = s.size();
for (i=0;i<=s.size()/2;i++,N--)
{
if (s[i]==s[N-1])
{
++count;
}
else break;

}
if (int(s.size()/2 + 1)==count)
{
cout<<s<<"是回文数"<<endl;
}
else
{
cout<<s<<"不是回文数"<<endl;
}
return 0;

}

------解决方案--------------------
楼主的代码有两处错误:
1.for (i=0;i<=s.size()/2;i++,N--),不应该是<=,按道理应该是1~s.size()/2,但是数组下标从0开始,所以应是<
2.if (int(N/2)==count),不应该用N,因为你循环里面已经把N减掉了。
#include <iostream>
#include <string>
using namespace std;
using std::string;

int main()
{
string s;
string::size_type i;
int count=0;
cin>>s;
string::size_type N = 0;
N = s.size();
for (i=0;i<s.size()/2;i++,N--)
{
if (s[i]==s[N-1])
{
++count;
}
else continue;

}

if (int(s.size()/2)==count)
{
cout<<s<<"是回文数"<<endl;
}
else
{
cout<<s<<"不是回文数"<<endl;
}
getchar();
return 0;

}

另外,楼主可以参考楼上的方法,不需要计数的。