谁知道为什么运行起来无法输出值?//答案做出来啦,分享成果一起学习


//* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
//程序名:跳水问题;                                                                        //
//五位跳水选手将参加十米高台跳水决赛,有好事者让五个人据实力预测比赛结果。                  //
//A选手说:B第二,我第三;                                                                  //
//B选手说:我第二,E第四;                                                                  //
//C选手说:我第一,D第二;                                                                  //
//D选手说:C最后,我第三;                                                                  //
//E选手说:我第四,A第一;                                                                   //
//决赛成绩公布之后,每位选手的预测都只说对了一半,即一对一错,且名次无相同,请编程解出比赛  //
//的实际名次。                                                                              //
//* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //


#include <iostream>                                                                   //预编译命令
using namespace std;

int main()                                                                            //主函数开始
{
    int cc1, cc2, cc3, cc4, cc5;                                                      //定义5个变量,分别表示5句话
    int A=0, B=0, C=0, D=0, E=0;                                                      //定义5个变量,分别表示5个人
    for (A = 1; A <= 5; A++)                                                          //枚举A的5种可能
        for (B = 1; B <= 5; B++)                                                      //枚举B的5种可能
            for (C = 1; C <= 5; C++)                                                  //枚举C的5种可能
                for (D = 1; D <= 5; D++)                                              //枚举D的5种可能        
                     {
                        E = 15 - A - B - C - D;                                       //根据ABCD的名次倒挤E的名次
                        if (A*B*C*D*E == 120)                                         //测试ABCDE名次互不相同时,才进行下一步骤
                           {
                               cc1 = ((B == 2) + (A == 3)) == 1;                      //第一句话的逻辑表达式
                               cc2 = ((B == 2) + (E == 4)) == 1;                      //第二句话的逻辑表达式
                               cc3 = ((C == 1) + (D == 2)) == 1;                      //第三句话的逻辑表达式
                               cc4 = ((C == 5) + (D == 3)) == 1;                      //第四句话的逻辑表达式
                               cc5 = ((E == 4) + (A == 1)) == 1;                      //第五句话的逻辑表达式
                        
                               if (cc1 + cc2 + cc3 + cc4 + cc5 == 5)                  //测试1~5句话都满足一真一假条件时,才进行下一步骤
                               {
                                   cout << cc1 << cc2 << cc3 << cc4 << cc5 << endl;   //输出第一到第五句话判断结果
                                   cout << "A是第" << A << "名" << endl;              //输出ABCDE的名次
                                   cout << "B是第" << B << "名" << endl;
                                   cout << "C是第" << C << "名" << endl;
                                   cout << "D是第" << D << "名" << endl;
                                   cout << "E是第" << E << "名" << endl;
                               }
                           }
                           
                     }
              
             return 0;
    
}

for ( D = 0; C <= 5; C++)

1.for后面拿来的分号“;”
2. if (cc1+cc2+cc3+cc4+cc5==5)里面左边能不能先加个括号

cc1 = ((B == 2) + (A == 3)) == 1;
cc2 = ((B == 2) + (E == 4)) == 1;
cc3 = ((C == 1) + (D == 2)) == 1;
cc4 = ((C == 4) + (D == 3)) == 1;
cc5 = ((E == 4) + (A == 1)) == 1;
这些你不觉得有问题吗? 先弄清楚 == 是什么意思,我不知道你这是在干嘛,不过看样子应该用三目运算符