看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) DEV C++ 問題(Question): 我想要隨機產生一百個介於1~100的亂數 印出產生的100個亂數 然後在底下印出平均值 執行時印出亂數後還沒印出平均值就停止程式 我拿去問教授他說看起來沒有錯 換一台電腦跑看看就可以了 可是我試了三台電腦還是不行 餵入的資料(Input):預期的正確結果(Expected Output): 隨機產生一百個介於1~100的亂數並取算出平均值 錯誤結果(Wrong Output): 雖然編譯的過,但是開始執行後就出現程式已經停止運作,然後發現底下也出現一行警告 訊息,上網查了一下好像是指標問題,可是我沒有用指標啊@@ [Warning] passing arg 1 of 'Average' makes pointer from integer without a cast. 程式碼(Code):(請善用置底文網頁, 記得排版) 網站: http://ideone.com/wkvLhx #include <stdio.h> #include <stdlib.h> #include <time.h> #define NUM 100 float Average(int []); int main() { int n[NUM], i; srand(time(NULL)); for(i = 0; i<NUM; i++) { n[i] = rand()%100 + 1 ; printf("%d%c",n[i],(i%10==9)?'\n':'\t'); } printf("--------------------------------\n"); printf("Mean = %f", Average(NUM)); //dev c++ 顯示錯在這一行 system("pause"); return 0; } float Average(int input[NUM]) { int j, sum = 0; float k; for(j = 0; j<NUM; j++) sum += input[j]; k = sum/NUM; return k; } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.244.238.4 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1464429258.A.936.html ※ 編輯: qq0925921 (60.244.238.4), 05/28/2016 17:56:54 ※ 編輯: qq0925921 (60.244.238.4), 05/28/2016 17:58:08
s89227: 第十九行,Average(NUM)怎麼會傳NUM進去呢 05/28 18:00
s89227: 要傳起始陣列位置吧 05/28 18:00
s89227: NUM是一個整數,可是你要求的參數是一個pointer 05/28 18:01
s89227: 所以會出現那個錯誤訊息 05/28 18:01
s89227: 可是我沒有用指標←所以你寫錯了XD 05/28 18:02
LPH66: 是說這裡有個 decaying 的問題 (關於錯誤訊息為何寫指標) 05/28 18:09
LPH66: 不過那是題外話, 重點確實在你的呼叫傳錯了 05/28 18:09
LPH66: 你的函數是吃一個陣列的但你丟一個數字進去 05/28 18:09
qq0925921: 感謝~原來這樣也算要求一個pointer,所以應該直接丟n 05/28 18:13
qq0925921: 進去對吧@@ 05/28 18:13
prismwu: 一般來說 換一台電腦跑跑看應該不會有用... 05/28 21:55
fatrabitree: 教授看不出來...!! 05/29 01:51
MOONRAKER: 老師才沒空看 呼攏你一下 問助教卡實在 05/29 10:22
s89227: 找教授debug......要找真正一直有在寫的啊XD 05/29 12:26
ronin728: 找助教比較實在啊XD 05/30 09:36
qq0925921: 我覺得教授應該是懶的看XD 05/30 13:18
sss22213: 函式6.5.2.2 05/31 02:12
sss22213: Array在6.5.2.1中有寫到one of the expressions shall h 05/31 02:15
sss22213: ave type "Pointer to object type" 05/31 02:15
ksks5222: 你這樣傳給函數只傳整數100而已 06/03 20:25
ksks5222: 你應該要把n位址傳過去吧 06/03 20:25
EngRookie: 教授..........? 06/13 00:45
t20d: 教授看不出來 原本覺得是懶得看 06/15 04:45
t20d: 覺得換幾台電腦就能跑比較不可思議 06/15 04:45