我写了这段代码,有一个问题,我似乎无法解决。该函数应该返回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