[問題] 初新手 for迴圈

看板C_Sharp (C#)作者 (0.0)時間9年前 (2016/05/01 12:21), 9年前編輯推噓5(5019)
留言24則, 7人參與, 最新討論串1/1
小弟剛學c#不久 拿到一個題目 http://imgur.com/j5Ln6mg
這是我是寫的,但我不知道方程式該打在哪才可以執行 private void button1_Click(object sender, EventArgs e) { double[] A = new double[101]; double sum = 0; int i; for (i = 1; i <= 101; i = i + 4) sum = sum + A[i]; MessageBox.Show(sum.ToString()); } p.s 我是用windows form應用程式寫的,所以我只複製button1部分 感謝回答 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.166.48.176 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1462076475.A.9D5.html

05/01 13:02, , 1F
先寫在這個事件裡就可以了
05/01 13:02, 1F
不好意思 事件是? 剛學還不太清楚... 還是我站內信您? ※ 編輯: z0809777 (218.166.48.176), 05/01/2016 13:09:54

05/01 16:22, , 2F
這個"button1_Click"方法 顧名思義就是按鈕button1被Click時
05/01 16:22, 2F

05/01 16:23, , 3F
要做什麼事. 至於真正在哪設定button1在Click時要執行此方法
05/01 16:23, 3F

05/01 16:24, , 4F
假設此方法寫在 form1.cs,一般會有個 Form1.Designer.cs
05/01 16:24, 4F

05/01 16:24, , 5F
裡面會有行 button1.Click += button1_Click;
05/01 16:24, 5F

05/01 16:25, , 6F
意思就是這個按鈕的Click事件,被綁定到這個方法
05/01 16:25, 6F

05/01 16:27, , 7F
我想他應該是問要怎麼寫function算出A[i]
05/01 16:27, 7F

05/01 16:28, , 8F
不過通常Winform程式都是去IDE畫面上點2下按鈕
05/01 16:28, 8F

05/01 16:29, , 9F
自動產生Click方法並綁定,讓IDE幫你產生Designer.cs內容
05/01 16:29, 9F

05/01 16:30, , 10F
若是這樣,計算邏輯就要請他自己想想了 XD
05/01 16:30, 10F

05/01 16:35, , 11F
for(...)加括號{這邊算出A[i];sum = sum + A[i];}
05/01 16:35, 11F
t大 我照你的方式打會出現這樣 http://imgur.com/HFQqGcV

05/01 16:35, , 12F
我懂testPtt的意思了,那建議原po閱讀MSDN的"方法"章節
05/01 16:35, 12F

05/01 16:35, , 13F
05/01 16:35, 13F
好 我會去看看的 ※ 編輯: z0809777 (218.166.48.176), 05/01/2016 17:13:55

05/01 18:23, , 14F
在算之前加個A[i]=0;試試
05/01 18:23, 14F
還是不行 我加在for(...){A[i]=0; .....} ※ 編輯: z0809777 (218.166.48.176), 05/01/2016 18:37:41

05/01 18:51, , 15F
你的 i 一次跳 4,但陣列長度只有101...
05/01 18:51, 15F
我改102 跑得出來了 但值是o 我不是用double 不是應該會有小數點了? ※ 編輯: z0809777 (218.166.48.176), 05/01/2016 19:27:18

05/01 20:12, , 16F
先轉型成 double 再運算,整數運算後最後還是整數
05/01 20:12, 16F
請問怎麼轉 我google int轉double 試了很久 算出來還是0....orz ※ 編輯: z0809777 (218.166.48.176), 05/01/2016 21:12:11

05/01 22:49, , 17F
你要運算的對象應該是i而不是A[i]吧
05/01 22:49, 17F

05/01 22:50, , 18F
陣列A在宣告後從未賦值,因此各元素都是預設值0
05/01 22:50, 18F

05/01 22:52, , 19F
其實陣列A是不需要的
05/01 22:52, 19F

05/02 09:11, , 20F
0 + 100個0 最後還是0
05/02 09:11, 20F

05/02 10:56, , 21F
A確實是贅物,不過原po這樣寫就順著講了XD
05/02 10:56, 21F

05/02 10:57, , 22F
轉型的話 A[i] = (double) i * (i + 1) ...; 就好
05/02 10:57, 22F

05/02 10:58, , 23F
我比較好奇你是試了什麼方法不行
05/02 10:58, 23F

05/02 14:33, , 24F
看不懂你程式碼的意圖@@
05/02 14:33, 24F
看完大家的推文我把陣列a換掉了 現在程式是這樣 double i; double sum = 0; double A = 0; for(i = 1; i <= 101; i = i + 4) { A = i * (i + 1) / ((i + 2) * (i + 3)); sum = sum + A; } MessageBox.Show(sum.ToString()); 但值出來是22.395..... 應該是對的了 謝謝大家的指導 ※ 編輯: z0809777 (218.166.50.100), 05/02/2016 16:17:04
文章代碼(AID): #1N9OGxdL (C_Sharp)
文章代碼(AID): #1N9OGxdL (C_Sharp)