我一直在编写一个程序,对一些stdin
数据进行操作,其中最后一部分是for / while
循环,导致轻微但完全无法解决的问题。
问题在于,尽管它提供了一个很好的答案,并且在idone.com
上完全正常工作,但它在我的Visual Studio或spoj.com
上提供了一个错误。问题是,在我将一些数据粘贴到我的控制台(在我的VS中)之后,在我给出一个字母或任何其他非白色标志并按下回车之前,没有输出。输出(当然是正确的)直到那时才显示。关于spoj.com
,我看到一个错误信息,超出了时间限制,但我非常确定问题是相同的 - 由于某种原因,程序正在侦听另一个符号。
因此,如果标志不直接影响输出,为什么我必须放置任何标志并点击enter
来显示答案?我还远不是专业的程序员,所以我非常感谢You Guys提供的任何帮助。
提前致谢!
(...)
for (int i = 0; i < numberOfOperations; i++)
{
scanf("%d%d", &leftSetRowNr, &rightSetRowNr);
char n;
n = getchar();
if((currentSum %2) == 0)
{
copyToMainTab(resultTab, mainTab,leftSetRowNr, mainTabCurrentInd);
}
else if (currentSum%2 != 0)
{
copyToMainTab(resultTab, mainTab,rightSetRowNr, mainTabCurrentInd);
}
quickSort(mainTab, 0, (mainTabCurrentInd-1) );
if(mainTabCurrentInd > trimNumber)
{
mainTabCurrentInd = trimNumber;
}
int tempSum = 0;
for(int s = 0; s < mainTabCurrentInd; s++)
{
tempSum += mainTab[s];
}
currentSum = tempSum;
}
int nrOfEl = 1;
int nr = mainTab[0];
for (int i = 1; i < trimNumber; i++)
{
if (nr != mainTab[i])
{
nrOfEl ++;
nr = mainTab[i];
}
}
printf("%d %d", currentSum, nrOfEl);
return 0;
} (...)