C, функция часов возвращает только 0,00000 - PullRequest
0 голосов
/ 31 января 2019

Когда я запускаю этот код, он печатает каждый раз 0,000000 вместо чего-то правдоподобного:

#include <stdio.h>
#include <time.h>
#define n 10

void ordinaVett(int v[], int elem){

    clock_t inizio, fine;
    double tempo;
    int i, j, x, posmin, tmp;
    printf("\n\nOrdinamento vettore di %d elementi per %d volte: \n", elem, n);
    printf("Sele-sort:\n");
    for(x = 0; x < n; x++){ 
        inizio = clock();
        //Ordinamento con Sele-sort         
        for(i = 0; i < elem - 1; i++){
            posmin = i;
            for(j = i + 1; j < elem; j++){
                if(v[j] < v[posmin])
                posmin = j;
            }
            if(posmin != i){
                tmp = v[i];
                v[i] = v[posmin];
                v[posmin] = tmp;
            }
        }
        fine = clock();
        //Visualizzazione vettore
        for(i = 0; i < elem; i++){
            printf("%d |", v[i]);
        }
        tempo = (double)(fine - inizio)/CLOCKS_PER_SEC;
        printf("   Tempo: %f\n", tempo);
    }
}

int main(){

    srand(time(NULL));

    int elementi = 20, i;
    int v[elementi];

    printf("Creazione vettore 20 elementi: \n");
    for(i = 0; i < elementi; i++)
    {
        v[i] = rand() % 1001;
        printf("%d |", v[i]);
    }
    ordinaVett(v, elementi);

}

Что я должен сделать, чтобы увидеть нормальный вывод?Спасибо!

некоторые слова по-итальянски: темп - время, ordinaVett - это sortArray, inizio - начало, а штрафа - конец.

1 Ответ

0 голосов
/ 31 января 2019

Хорошо, неважно, я понял, что процессор слишком быстрый и двойная переменная не может содержать столь простое число.Это наверняка довольно глупое занятие, чтобы надеть учебник.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...