作者p221071889 (LiLo)
看板C_and_CPP
標題[問題] 請幫我修改一下這個麻煩的sqrtˊˋ
時間Wed Oct 21 15:51:12 2009
程式碼在這裡
↓
http://nopaste.info/4fd89abd59.html
上面是一個很簡單的gradebook
下面的函數是在算標準差
可是我的語法不知道哪裡錯了....
請大家幫我看看給個建議好嘛
謝謝阿ˇ
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.138.241.90
1F:推 ledia:問題很多, 你學到哪, 看起來陣列和函式都還不會用 10/21 15:56
2F:→ ledia:如果要改好, 建議先把書上基礎的部份完全弄懂 10/21 15:57
3F:推 VictorTom:好詭異, 我IE6和FF3.5都開不了那個連結XD 10/21 15:58
5F:→ ledia:XD 10/21 15:59
※ 編輯: p221071889 來自: 140.138.241.90 (10/21 16:00)
6F:→ p221071889:可以麻煩你跟我說錯了哪裡嗎.. 10/21 16:03
7F:→ p221071889:雖然我知道很難改ˊˋ 10/21 16:04
8F:推 VictorTom:l大內建自動校正URL的tools....XD 10/21 16:16
9F:推 ledia:1. array 從第 0 開始算, 如果宣告 a 格, 只能用 0 ~ a-1 10/21 16:37
10F:→ ledia:所以 arr 宣告是 int arr[10][3]; 的話, 就只能用 [0][0] 到 10/21 16:38
11F:→ ledia:[9][2], 用超過程式就可能會掛點, 迴圈中 cin >> arr[j][3]; 10/21 16:38
12F:→ ledia:語義上看起來有兩個錯誤: A. 後面的輸入會蓋掉前面的, B. 10/21 16:39
13F:→ ledia:arr[j][3] 的 j 最多會到 10, 超過 0~9 的許可範圍, 3 也超 10/21 16:40
14F:→ ledia:過 0~2 的許可範圍, 所以是會出錯的 10/21 16:40
15F:→ ledia:2. 我不知道為什麼標準差要用三種函式, 而且取名為 sqrt 也 10/21 16:40
16F:→ ledia:很奇怪, 一般來說 sqrt 是開根號, 標準差會被稱為 sd 10/21 16:43
17F:→ ledia:3. 標準差應該要把 array 丟進去算, 然後輸入一個答案 10/21 16:43
18F:→ ledia:你的函式只吃一個 double, 本身就不太合理 10/21 16:44
19F:→ ledia:在 sqrt_1 的迴圈裡自己宣告 arr 也並不會用到原本那一份 10/21 16:45
20F:→ ledia:所以你需要把書上 "函數怎麼傳遞資料" 的那個章節看懂 10/21 16:45
21F:→ ledia:把正確的資料傳進去, 照公式算好再傳出來 10/21 16:46
22F:→ ledia:以上... 先改出個比較接近可以執行的程式, 再來討論會比較 10/21 16:47
23F:→ ledia:容易進步 10/21 16:47
24F:→ ledia:上面的 3. 那一行... "輸入" 應為 "輸出" 10/21 16:48