我寫了這段代碼,有一個問題,我似乎無法解決。該函數應該返回T1並從主中返回,但它總是給我一個錯誤「T1 is undeclared identifier」。爲什麼?無法從函數返回值?
#include<iostream>
#include<math.h>
#include<time.h>
using namespace std;
double factorial()
{
int i;
double T1,total=0;
for(i=0;i<200;i++)
{
clock_t start = clock();
int a,N,f;
N=99999;
f=N;
for(a=N-1;a>0;a--)
{
f=f*a;
}
clock_t end = clock();
T1=double(end-start)/(double) CLOCKS_PER_SEC;
total=total+T1;
}
T1=total/200;
return T1;
}
int main()
{
factorial();
cout<<T1<<endl;
return 0;
}
它運行,但給出了一個錯誤的答案,它給0 ,,我用double而不是int它給出了完全不同的答案,它應該是0.00116,但它是0.00177 – Anon 2011-05-02 02:45:54
@Anon:爲什麼0是錯誤的答案?你的電腦速度相當快,你只做了幾千次乘法。或者,編譯器只是將它們完全優化。 – 2011-05-02 02:51:27
這應該是你的'factorial()'函數的一個問題。你的問題是關於編譯錯誤,這聽起來像用上面的代碼修復了。 – CoolBeans 2011-05-02 02:52:48