c++ - 仅在按 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;
}
谢谢!
解决方案
推荐阅读
- android - 读取测试数据库失败 - 权限被拒绝
- javascript - 将范围值写入拇指滑块
- r - 错误:函数的“路径”参数无效
- google-tag-manager - 为什么谷歌分析在我通过谷歌标签管理器安装后包含我的点击?
- java - 从用户注销时,ViewPager 事件给我错误
- python - 为什么使用用户定义的对象作为键时,Python 中的字典查找总是比较慢?
- node.js - 尝试在 Windows 上安装 NPM 包时遇到证书错误。我正在使用节点 v10.9.0
- javascript - 如何使用 react-native-link-preview 从 url 获取标题
- python - 禁止在类外部使用默认构造函数
- vb.net - 在 VB.NET 中读取时从文件中排除二进制数据的前 'x' 个字节