[問題] 新手C語言陣列問題

看板C_and_CPP作者 (Cioufano)時間8年前 (2016/05/28 17:54), 8年前編輯推噓8(8016)
留言24則, 11人參與, 最新討論串1/1
開發平台(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

05/28 18:00, , 1F
第十九行,Average(NUM)怎麼會傳NUM進去呢
05/28 18:00, 1F

05/28 18:00, , 2F
要傳起始陣列位置吧
05/28 18:00, 2F

05/28 18:01, , 3F
NUM是一個整數,可是你要求的參數是一個pointer
05/28 18:01, 3F

05/28 18:01, , 4F
所以會出現那個錯誤訊息
05/28 18:01, 4F

05/28 18:02, , 5F
可是我沒有用指標←所以你寫錯了XD
05/28 18:02, 5F

05/28 18:09, , 6F
是說這裡有個 decaying 的問題 (關於錯誤訊息為何寫指標)
05/28 18:09, 6F

05/28 18:09, , 7F
不過那是題外話, 重點確實在你的呼叫傳錯了
05/28 18:09, 7F

05/28 18:09, , 8F
你的函數是吃一個陣列的但你丟一個數字進去
05/28 18:09, 8F

05/28 18:13, , 9F
感謝~原來這樣也算要求一個pointer,所以應該直接丟n
05/28 18:13, 9F

05/28 18:13, , 10F
進去對吧@@
05/28 18:13, 10F

05/28 21:55, , 11F
一般來說 換一台電腦跑跑看應該不會有用...
05/28 21:55, 11F

05/29 01:51, , 12F
教授看不出來...!!
05/29 01:51, 12F

05/29 10:22, , 13F
老師才沒空看 呼攏你一下 問助教卡實在
05/29 10:22, 13F

05/29 12:26, , 14F
找教授debug......要找真正一直有在寫的啊XD
05/29 12:26, 14F

05/30 09:36, , 15F
找助教比較實在啊XD
05/30 09:36, 15F

05/30 13:18, , 16F
我覺得教授應該是懶的看XD
05/30 13:18, 16F

05/31 02:12, , 17F
函式6.5.2.2
05/31 02:12, 17F

05/31 02:15, , 18F
Array在6.5.2.1中有寫到one of the expressions shall h
05/31 02:15, 18F

05/31 02:15, , 19F
ave type "Pointer to object type"
05/31 02:15, 19F

06/03 20:25, , 20F
你這樣傳給函數只傳整數100而已
06/03 20:25, 20F

06/03 20:25, , 21F
你應該要把n位址傳過去吧
06/03 20:25, 21F

06/13 00:45, , 22F
教授..........?
06/13 00:45, 22F

06/15 04:45, , 23F
教授看不出來 原本覺得是懶得看
06/15 04:45, 23F

06/15 04:45, , 24F
覺得換幾台電腦就能跑比較不可思議
06/15 04:45, 24F
文章代碼(AID): #1NIMhAas (C_and_CPP)