我的程序有一個小問題。 我想從函數中評估時間,編譯器給我一個錯誤。 我知道,我們的問題是,但我只是不知道如何解決它:/錯誤:函數'ptr'的參數太少,需要函數的eval_time
#include <stdio.h>
#include <time.h>
int isPerfect(int zahl){
int zaehler1, zaehler2, summe;
for(zaehler1=1;zaehler1<=zahl;zaehler1++){
summe=0;
for(zaehler2=1;zaehler2<=zaehler1/2;zaehler2++){
if(zaehler1%zaehler2==0){
summe=summe+zaehler2;
}
}
}
return summe;
}
double eval_time(int(*ptr)(int)){
time_t begin,end;
begin=time(NULL);
(*ptr)(); //compiler shows error here!
end=time(NULL);
return difftime(end,begin);
}
int main(void){
int zahl;
for(zahl=1;zahl<=500;zahl++){
if(isPerfect(zahl)==zahl){
printf("%d ist eine perfekte Zahl!\n", zahl);
}
}
printf("Die Zeit die gebraucht wurde: %.2lf s\n",eval_time(isPerfect));
return 0;
}
所以我的問題是我需要所以evals從funtion「isPerfect」的時候改變有哪些? 對不起我的變量是在德國,我希望這不是一個問題;)
你在'eval_time'中的函數指針需要'int'參數。你需要提供這個論點。就像錯誤在說。確切地說*你應該通過什麼取決於你。 –