[問題] 函數
開發平台(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);
}
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.232.125.172
※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1408137818.A.635.html
推
08/16 05:39, , 1F
08/16 05:39, 1F
已修改過,但仍有錯誤。
程式complier後停在double z=function(x,y);
它說function未宣告
這是什麼意思呢?
function在副程式不是已經宣告了嗎?
→
08/16 09:12, , 2F
08/16 09:12, 2F
謝謝 我試過了 不過這一次編譯後卻在system("pause");這行顯示未宣告...
可是這行不就只是要讓顯示結果停住而已...?
我好像少了#include<stdlib.h>這行(呆) (system("pause");需要引入stdlib才可以
使用) 不過輸出的結果依舊會是零 (可編譯可執行 但不管輸入任何的x、y值 結果依舊是
零...)
推
08/16 10:24, , 3F
08/16 10:24, 3F
我有試著把 double z=function(x,y);這行剪下移到printf("x的y次方是%d\n",z);上面
可是執行完後的輸出結果還是零...
我好像跑出來了 將上面的double型態全部改回int就可以跑了...
所以這裡不可以把function設為double型態嗎?
還有兩個問題:
1.副程式的宣告,一定要在主程式之前嗎?
2.輸入變數x跟y,得先給初值,才能定義int z=function(x,y);嗎?
→
08/16 10:40, , 4F
08/16 10:40, 4F
推
08/16 10:42, , 5F
08/16 10:42, 5F
謝謝各位的回答... 因為我大學修課時不認真 現在是買書來自學啦...
可是書上的說明看不懂 只好邊寫邊debug 借助版上的神人指點迷津一下
有人可以回答我上面問的那兩個問題嗎?
感謝
他書上有些程式範例是把宣告的副程式放在最後面 但我也試著跑過他的程式範例
但跑不出來...
→
08/16 10:58, , 6F
08/16 10:58, 6F
→
08/16 10:59, , 7F
08/16 10:59, 7F
→
08/16 11:00, , 8F
08/16 11:00, 8F
→
08/16 11:01, , 9F
08/16 11:01, 9F
→
08/16 11:02, , 10F
08/16 11:02, 10F
→
08/16 11:03, , 11F
08/16 11:03, 11F
所以主程式裡面不管要用多少個副程式 都必須在主程式宣告前定義好這些副程式?
→
08/16 11:05, , 12F
08/16 11:05, 12F
→
08/16 11:07, , 13F
08/16 11:07, 13F
謝謝r大 令我茅塞頓開不少...
※ 編輯: gauss760220 (36.232.125.172), 08/16/2014 11:09:11
→
08/16 17:50, , 14F
08/16 17:50, 14F
→
08/16 18:23, , 15F
08/16 18:23, 15F
→
08/19 12:10, , 16F
08/19 12:10, 16F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章