dejopl Posted January 6, 2018 Report Share Posted January 6, 2018 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 to comment Share on other sites More sharing options...
DevPort Posted January 10, 2018 Report Share Posted January 10, 2018 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 to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.