作者qq0925921 (Cioufano)
看板C_and_CPP
標題[問題] 新手C語言陣列問題
時間Sat May 28 17:54:14 2016
開發平台(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