dejopl Napisano Styczeń 6, 2018 Zgłoś Share Napisano Styczeń 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 do komentarza Udostępnij na innych stronach More sharing options...
DevPort Napisano Styczeń 10, 2018 Zgłoś Share Napisano Styczeń 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 do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.