開發平台(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);
}
作者: 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必須已經是有效內容要宣告其原型 但定義可以放在主程式之後 甚至是其他檔案