看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《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)
VictorTom:語法上沒有錯的東西, compile time應該是不會報錯的@@" 12/07 16:06
※ 編輯: cooper6334 來自: 112.104.57.123 (12/07 16:09)
VictorTom:補充一下, Min/Max的初值應該不是0, 而是根本不知是啥; 12/07 16:28
VictorTom:解決方法就如您說的, 等輸入第一筆再記錄; 或者理論上把 12/07 16:28
cooper6334:應該說是天曉得是多少,不過是0的機率還滿高的 12/07 16:29
VictorTom:Min設成MaxFloat, Max設成MinFloat應該也是可以的:) 12/07 16:29
VictorTom:是0機率應該還好, VC debug mode應該會是0xCCCCCCCC, 其 12/07 16:30
VictorTom:他情況完全取決於stack裡殘留的東西是啥....@_@" 12/07 16:31
behero:我是先存第一筆資料,再下去跑for,再找Min & Max,我應該 12/07 16:37
behero:是這樣寫~我很菜 QQ 12/07 16:37
behero:謝謝C大跟V大的回答! 12/07 16:51
VictorTom:ㄟ~~你還有一個問題是, num[]不能這樣開啊....@_@" 12/07 16:54
VictorTom:照你後面的迴圈來看, num[]宣告直接給num[10]就好了. 12/07 16:54