一个循环工作太久了

时间:2014-06-08 22:58:05

标签: c++ loops

我一直在编写一个程序,对一些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;
}    (...)

0 个答案:

没有答案