[問題] 函數

作者: gauss760220 (找尋無臉華)   2014-08-16 05:23:32
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
C
問題(Question):
無法算出冪次方
預期的正確結果(Expected Output):可算出x的y次方
錯誤結果(Wrong Output):不管怎麼輸入x、y,pow(x,y)均顯示為零
程式碼(Code):(請善用置底文網頁, 記得排版)
#include<stdio.h>
#include<math.h>
int main()
{
int x,y;
double z=function(x,y);
printf("請輸入x值:");
scanf("%d",&x);
printf("\n");
printf("請輸入y值:");
scanf("%d",&y);
printf("\n");
printf("x的y次方是%d\n",z);
system("pause");
return 0;
}
double function(int a,int b)
{
return pow(a,b);
}
作者: prismwu   2014-08-16 05:39:00
1.pow回傳double 2.下面function沒用到
作者: anfernee5000 (加油)   2014-08-16 09:12:00
將double function(int a,int b)放到int main上方
作者: putumaxally (putumaxally)   2014-08-16 10:24:00
x,y沒給初始值就直接代入函數,算完才叫使用者輸入...%d是顯示整數,double要用%lf
作者: remizu (remizu)   2014-08-16 10:42:00
z是double 在printf時要用%f1. 函數(副程式)必須要在"使用之前"宣告其原型這樣編譯器才知道函數吃哪些 哪種型別的參數以及函數將傳回什麼型別的值2. int z=function(x,y);的話 是宣告int型別變數z並將其值初始化為function(x,y);的傳回值因此在這行時就已經執行function(x,y); 才能知道其傳回值當然 作為參數的x, y必須已經是有效內容要宣告其原型 但定義可以放在主程式之後 甚至是其他檔案
作者: carylorrk (carylorrk)   2014-08-16 17:50:00
換本書吧...XD
作者: uranusjr (←這人是超級笨蛋)   2014-08-16 18:23:00
推樓上, 請換書
作者: kenn2001 (kenn )   2014-08-19 12:10:00
printf("x的y次方是%d\n",z); %d?

Links booklink

Contact Us: admin [ a t ] ucptt.com