2014-10-13 1 views
-1

Я выяснял, как найти правильный цикл для печати значений, поэтому я подумал, что для цикла loop будет проще работать. Я хочу распечатать значения 10 раз вместе с результатами таймера от 1000 до 10000 или от 1 до 10, независимо от того, как вы это называете. Вот код:Для Loop, чтобы распечатать 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

Что выдает только один раз? – John3136

+0

Первое значение, которое я вводил. Я ожидаю, что он распечатает следующие 9 значений с помощью x ++. – Cam9191

+0

Итак, похоже, что цикл 'while' никогда не заканчивается - запустите его в отладчике или добавьте некоторые отпечатки, чтобы отслеживать, что происходит. – John3136

ответ

0

Ваши заявления о печати не входят в петли.

Поэтому каждый из них выполняется только один раз.

Ваши операторы печати должны быть в циклах, если вы хотите, чтобы они печатались каждый раз, когда цикл запущен.

Также вам нужно инициализировать вашу переменную «n» до чего-то большего, чем 0, если вы еще этого не сделали.

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 
...... 
} 

Надеюсь, это будет полезно в будущем другим программистам!

Смежные вопросы