我一直在寻找正确的循环来打印出值,所以我认为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);
}
它只会打印一次所以我的愚蠢代码是什么?!
答案 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
......
}
希望将来对其他程序员有用!