For Loop通过相乘打印出10个值

时间:2014-10-13 03:33:07

标签: c++ c for-loop printing timer

我一直在寻找正确的循环来打印出值,所以我认为For循环更容易使用。我想打印出值10次以及从1000到10000或1到10开始的计时器结果,无论你怎么称呼它。这是代码:

cout << " N Value | Array Sort Time | Listed List Sort Time" << endl;
cout << "               (seconds)           (seconds) " << endl;
cout << endl;

for(int x = 1; x <= 10; x++)
{

    x = x*n;
    printf(" %d", n);
    int m = n; //copy N value for new integer to do 2nd while loop

    begin = clock();
    while(n != 0)
    {
        input = rand()%n;

        addArray(input, pArray, size);
        n--;

        if( input == -1)
        {
            break;   // end of list, don't add it to list
        }
    }
    end = clock();
    time_spent = (double)(end - begin) / CLOCKS_PER_SEC;
    printf("          %5.3f", time_spent);

    begin = clock();
    while(m != 0)
    {
        input = rand()%m;

        addNode(pHead, input);
        m--;

        // break if end of list
        if( input == -1)
        {
            break;   // end of list, don't add it to list
        }
    }
    end = clock();
    time_spent = (double)(end - begin) / CLOCKS_PER_SEC;
    printf("               %5.3f", time_spent);
}

它只会打印一次所以我的愚蠢代码是什么?!

2 个答案:

答案 0 :(得分:0)

您的print语句不在循环中。

因此,他们每人只执行一次。

如果您希望每次循环运行时都打印,则您的打印语句必须位于循环中。

如果你还没有,你需要将'n'变量初始化为大于0的值。

答案 1 :(得分:0)

我想出了解决这个问题的方法。小错!这是解决方案。

for(int x = 1; x <= 10; x++)
{
    n = 1000*x; //ta-da!!!!
    int m = n; //copy N value for new integer to do 2nd while loop
......
}

希望将来对其他程序员有用!