程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 函數調用-c語言中函數返回值類型的問題

函數調用-c語言中函數返回值類型的問題

編輯:編程綜合問答
c語言中函數返回值類型的問題

看一道改錯題:
#include
#include
#include
proc(int k)//很顯然根據主調函數和返回值類型知道這裡缺少類型
{
int n;float s,w,p,q;
n=1;
s=1.0;
while(n<=k){
w=2.0*n;
p=w-1.0;
q=w+1.0;
s=s*w*w/p/q;
n++;
}
return s;
}
void main(){
system("CLS");
printf("%f\n",proc(20));
}
我覺得既然變量s是float型,就應該改成float proc(int k)。可是本題的答案確實這樣子改的 double proc(int k)我想問答案這樣改對嗎?如果對道理是什麼?

最佳回答:


你的想法是沒錯,但是你要看你具體的函數的內部的操作啊 ,你的被調函數裡面有一個語句是:s=s*w*w/p/q;
你能確定 計算完了這個s還在float 的范圍內嗎,為了防止數字的越界問題,返回值就設置成立double 就是為了安全的考慮。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved