求助,这个程序哪里出错了

#include
using namespace std;
int main()
{
char c1,c2,c3;
c1='A',c2='B',c3='C';

c3==c3+21||c3==c3+22||c3==c3+23;
c2==c2+22||c2==c2+23||c2==c2+24;
c1==c1+23||c1==c3+24||c3==c3+25;
c3!=c3+21&&c3!=c3+23;
c1!=c3&&c1!=c1+23;
c2!=c1&&c2!=c3;
cout<<"A--"<<c1<<" B--"<<c2<<" C--"<<c3<<endl;
return 0;

}

你的程序可以编译,可以编译的程序在不知道你希望程序干嘛的前提下,无所谓“错”。关键看你希望程序干嘛,结果和你的预期有什么不同。

你的程序要判断什么?

c3==c3+21||c3==c3+22||c3==c3+23;
c2==c2+22||c2==c2+23||c2==c2+24;
c1==c1+23||c1==c3+24||c3==c3+25;
c3!=c3+21&&c3!=c3+23;
c1!=c3&&c1!=c1+23;
c2!=c1&&c2!=c3;

答案 》》》
以上操作不会改变 c1、c2、c3的值,都是一些逻辑判断,和下面加括号等同:
(c3==c3+21) || (c3==c3+22) || (c3==c3+23);
(c2==c2+22) || (c2==c2+23) || (c2==c2+24;
(c1==c1+23) || (c1==c3+24) || (c3==c3+25);
(c3!=c3+21) && (c3!=c3+23) ;
(c1!=c3) && (c1!=c1+23) ;
(c2!=c1) && (c2!=c3) ;

&& 、|| 的优先级比==、!=的低