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

作者: qq0925921 (Cioufano)   2016-05-28 17:54:14
開發平台(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("
作者: s89227 (Kei)   2016-05-28 18:00:00
第十九行,Average(NUM)怎麼會傳NUM進去呢要傳起始陣列位置吧NUM是一個整數,可是你要求的參數是一個pointer所以會出現那個錯誤訊息可是我沒有用指標←所以你寫錯了XD
作者: LPH66 (-6.2598534e+18f)   2016-05-28 18:09:00
是說這裡有個 decaying 的問題 (關於錯誤訊息為何寫指標)不過那是題外話, 重點確實在你的呼叫傳錯了你的函數是吃一個陣列的但你丟一個數字進去
作者: qq0925921 (Cioufano)   2016-05-28 18:13:00
感謝~原來這樣也算要求一個pointer,所以應該直接丟n進去對吧@@
作者: prismwu   2016-05-28 21:55:00
一般來說 換一台電腦跑跑看應該不會有用...
作者: fatrabitree (胖兔子)   2016-05-29 01:51:00
教授看不出來...!!
作者: MOONRAKER (㊣牛鶴鰻毛人)   2016-05-29 10:22:00
老師才沒空看 呼攏你一下 問助教卡實在
作者: s89227 (Kei)   2016-05-29 12:26:00
找教授debug......要找真正一直有在寫的啊XD
作者: ronin728 (浪人)   2016-05-30 09:36:00
找助教比較實在啊XD
作者: qq0925921 (Cioufano)   2016-05-30 13:18:00
我覺得教授應該是懶的看XD
作者: sss22213 (sss22213)   2016-05-31 02:12:00
函式6.5.2.2Array在6.5.2.1中有寫到one of the expressions shall have type "Pointer to object type"
作者: ksks5222 (Prue)   2016-06-03 20:25:00
你這樣傳給函數只傳整數100而已你應該要把n位址傳過去吧
作者: EngRookie (EngRookie)   2016-06-13 00:45:00
教授..........?
作者: t20d (踢餓死低)   2016-06-15 04:45:00
教授看不出來 原本覺得是懶得看覺得換幾台電腦就能跑比較不可思議

Links booklink

Contact Us: admin [ a t ] ucptt.com