Skocz do zawartości

C Pointer na funkcję i funkcja time_t


dejopl

Polecane posty

Witam,

mam problem z pointerem *zeit na funkcję isP oraz z funkcją t, która ma mierzyć czas działania funkcji isP. Bardzo proszę o poradę.

 

 

#include <stdio.h>#include <time.h>int isP(int zahl){int i, teiler = 0;for(i = 1; zahl > i; i++){   	if(zahl % i == 0)		teiler = teiler + i;}if(zahl == teiler)return 1;else return 0;}double t(int (*zeit)(int)){time_t begin, end;begin  = time (NULL);int i;(*zeit)(i);end = time (NULL);return difftime (end, begin);}int main(void){int n;printf(" Die perfekte Zahlen sind: ");for(n = 1; n <= 500; n++){   	if(isP(n) == 1)       	printf(" %d;", n);}printf("\nDie Zeit bis 5te perfekte Zahl gefunden wurde: %3.0f sec", t(isP));printf("\n\n");return 0;}

 

Link do komentarza
Udostępnij na innych stronach

Nie wiem w czym masz problem, mnie to działa. :)

Pamiętaj, że ->

 

 

int i;(*zeit)(i);
 

 

 

i - nie zawiera konkretnej wartości, równie dobrze może zawierać wartość 0 lub jakąś śmieciową z pamięci.

Mi dopiero przy wartości 100000000 czas wykonania funkcji trwał dłużej jak 1 s

Prawdziwy programista wiesza sie wraz ze swoim programem.

Link do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

×
×
  • Utwórz nowe...