簡體   English   中英

無法從 function 返回值?

[英]Can't return value from function?

我寫了這段代碼,但有一個我似乎無法解決的問題。 function 應該返回 T1 並從 main 中取出它,但它總是給我一個錯誤“T1 是未聲明的標識符”。 為什么?

#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;
}

每個 function 只知道它的局部變量(和全局變量,您沒有任何定義)。 您必須為 main 中的結果創建一個變量:

int main()
{
   double answer = factorial();
   cout << answer << endl;

   return 0;
}

我不知道你是否在乎,但階乘值會溢出。

因為 T1 沒有在 main() scope 下定義,所以它只在 function階乘的 scope 下定義。

你應該這樣做:

cout<<factorial()<<endl;

或在您的主要function 中像這樣定義 T1:

double T1 = factorial();
cout<<T1<<endl;

您必須先在本地定義T1或將其設為全局變量(不推薦)。

int main()
{
double T1=factorial();

cout<<T1<<endl;

return 0;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM