Skocz do zawartości


C Pointer na funkcję i funkcja time_t


1 odpowiedź w tym temacie

#1 dejopl

    Nowy na forum

  • Użytkownicy
  • 1 Postów:

Napisano sob, 06 sty 2018 - 14:22

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

c
#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  = {FNAMEL}.html">time (NULL);
        int i;
        (*zeit)(i);
        end = {FNAMEL}.html">time (NULL);
        return {FNAMEL}.html">difftime (end, begin);
}
int main(void){
        int n;
        {FNAMEL}.html">printf(" Die perfekte Zahlen sind: ");
        for(n = 1; n <= 500; n++){
        if(isP(n) == 1)
                {FNAMEL}.html">printf(" %d;", n);
        }
        {FNAMEL}.html">printf("\nDie Zeit bis 5te perfekte Zahl gefunden wurde: %3.0f sec", t(isP));
        {FNAMEL}.html">printf("\n\n");
        return 0;
}


#2 spike

    Pomocna dłoń

  • Super użytkownicy
  • 187 Postów:
  • Gadu-Gadu:6345414

Napisano śro, 10 sty 2018 - 14:30

Nie wiem w czym masz problem, mnie to działa. :)
Pamiętaj, że ->

c
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