首页 > 解决方案 > 仅在按 enter 时显示输出

问题描述

这是 codeChef 问题的 c++ 代码 https://www.codechef.com/problems/UCL

输入

 2
manutd 8 vs. 2 arsenal
lyon 1 vs. 2 manutd
fcbarca 0 vs. 0 lyon
fcbarca 5 vs. 1 arsenal
manutd 3 vs. 1 fcbarca
arsenal 6 vs. 0 lyon
arsenal 0 vs. 0 manutd
manutd 4 vs. 2 lyon
arsenal 2 vs. 2 fcbarca
lyon 0 vs. 3 fcbarca
lyon 1 vs. 0 arsenal
fcbarca 0 vs. 1 manutd
a 3 vs. 0 b
a 0 vs. 0 c
a 0 vs. 0 d
b 0 vs. 0 a
b 4 vs. 0 c
b 0 vs. 0 d
c 0 vs. 0 a
c 0 vs. 0 b
c 1 vs. 0 d
d 3 vs. 0 a
d 0 vs. 0 b
d 0 vs. 0 c

预期产出

manutd fcbarca
d b

我的输出

manutd fcbarca


d b

现在的问题是:manutd fcbarca 正在自动输出,但是对于 db .. 我必须按两次 enter 来创建两行空格...

查询:我怎样才能防止它发生我的意思是我怎样才能以与第一个输出相同的方式获得第二个输出(即自动 - 无需按 Enter)。

我的代码




  while (tcs != 0) {
    matches = 12;
    while (matches > -1) {
      ifHome = "false" , ifAway = "false";
      int posHome, posAway;

      getline(cin, currentMatch);
      istringstream ss(currentMatch);
      ss >> home >> homeGoal >> vs >> awayGoal >> away;

      // cout << " " << home  << " "<< homeGoal << " " << awayGoal<< " " << away;

      homeGoalDiff = homeGoal - awayGoal;
      awayGoalDiff = awayGoal - homeGoal;

      posHome = searchHome(home, arrTeam , &ifHome);

      if(ifHome == "true"){
         arrTeam[posHome] = home;
         arrGoalDiff[posHome] = homeGoalDiff;
      }
      else{
          arrGoalDiff[posHome] += homeGoalDiff;
      }


      posAway = searchAway(away, arrTeam , &ifAway);

      if(ifAway == "true"){
        arrTeam[posAway] = away;
        arrGoalDiff[posAway] = awayGoalDiff;
      }
      else{
          arrGoalDiff[posAway] += awayGoalDiff;
      }

      if(homeGoal > awayGoal){
          arrGoal[posHome] += 3;
      }
      else if(homeGoal == awayGoal){
          arrGoal[posHome] += 1;
          arrGoal[posAway] += 1;
      }
      else
          arrGoal[posAway] += 3;




      //cout << " checking teams: "<< arrTeam[posHome] << " " << arrTeam[posAway]<< endl;
      //cout << " Checking goals: "<< arrGoal[posHome] << " "<< arrGoal[posAway] << endl ;



      matches--;
      if (matches == 0) {
        //for(int a = 0; a <= 3; a++)
            //cout << arrGoal[a] << " "<< arrGoalDiff[a] << endl;

        for (int i = 0; i < 3; i++) {


          if (arrGoal[i] > arrGoal[i + 1]) {
            swap(arrGoal[i], arrGoal[i + 1]);
            swap(arrTeam[i], arrTeam[i + 1]);
            swap(arrGoalDiff[i], arrGoalDiff[i + 1]);
          } else if (arrGoal[i] == arrGoal[i + 1]) {

            if (arrGoalDiff[i] > arrGoalDiff[i + 1]) {
              swap(arrGoal[i], arrGoal[i + 1]);
              swap(arrTeam[i], arrTeam[i + 1]);
              swap(arrGoalDiff[i], arrGoalDiff[i + 1]);
            }
          }
        }
        int init = 2;
        cout <<endl << arrTeam[init+1] << " " << arrTeam[init];
      }
    }
    //cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
    tcs--;
    memset(arrTeam, 0, sizeof(arrTeam));
    memset(arrGoal, 0, sizeof(arrGoal));
    memset(arrGoalDiff, 0, sizeof(arrGoalDiff));
  }

  return 0;
}




谢谢!

标签: c++

解决方案


推荐阅读