作者cooper6334 (小恐龍)
看板C_and_CPP
標題Re: [語法] 寫作業遇到瓶頸(問完自D)!謝謝!
時間Mon Dec 7 16:05:37 2009
※ 引述《behero (Body of lies.)》之銘言:
: 作業題目:
: 設計一程式,由鍵盤輸入數項浮點數,並存入一陣列中。針對此陣列:
: 1. 計算其平均值
: 2. 找出最大值及其索引值
: 3. 找出最小值及其索引值
: 4. 印出所有資料。
: 這是我寫的程式:
: #include<stdio.h>
: #include<stdlib.h>
: int main(void)
: {
: int i;
: float sum,num[i],Min,Max;
: Min=Max=num[0];
我個人覺得併在一起寫不太好,可是好像complier會過
問題是出在你這樣設,Min的初值是0,所以只要你都輸入大於0的數,最後Min還是0
解決的方法就是先scanf第一個數,再把它塞給Min跟Max,之後再跑for迴圈
而且num[0]沒給初值就用不太好......
再補充一下,找不到索引號,是你沒有存到阿,
你的i跑for迴圈跑完當然是跑到底,印出這個i沒有意義
要就再設兩個變數把索引號存起來
: 目前跑不出最小值以及無法判定最大值跟最小值之索引號是多少
: 想了很久還是不知道問題在哪裡!
: 希望各位板友提供意見!!謝謝!
--
我要以耍冷來對抗溫室效應
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 112.104.57.123
※ 編輯: cooper6334 來自: 112.104.57.123 (12/07 16:06)
1F:推 VictorTom:語法上沒有錯的東西, compile time應該是不會報錯的@@" 12/07 16:06
※ 編輯: cooper6334 來自: 112.104.57.123 (12/07 16:09)
2F:推 VictorTom:補充一下, Min/Max的初值應該不是0, 而是根本不知是啥; 12/07 16:28
3F:→ VictorTom:解決方法就如您說的, 等輸入第一筆再記錄; 或者理論上把 12/07 16:28
4F:→ cooper6334:應該說是天曉得是多少,不過是0的機率還滿高的 12/07 16:29
5F:→ VictorTom:Min設成MaxFloat, Max設成MinFloat應該也是可以的:) 12/07 16:29
6F:→ VictorTom:是0機率應該還好, VC debug mode應該會是0xCCCCCCCC, 其 12/07 16:30
7F:→ VictorTom:他情況完全取決於stack裡殘留的東西是啥....@_@" 12/07 16:31
8F:推 behero:我是先存第一筆資料,再下去跑for,再找Min & Max,我應該 12/07 16:37
9F:→ behero:是這樣寫~我很菜 QQ 12/07 16:37
10F:推 behero:謝謝C大跟V大的回答! 12/07 16:51
11F:推 VictorTom:ㄟ~~你還有一個問題是, num[]不能這樣開啊....@_@" 12/07 16:54
12F:→ VictorTom:照你後面的迴圈來看, num[]宣告直接給num[10]就好了. 12/07 16:54