作者z0809777 (0.0)
看板C_Sharp
標題[問題] 初新手 for迴圈
時間Sun May 1 12:21:11 2016
小弟剛學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://webptt.com/m.aspx?n=bbs/C_Sharp/M.1462076475.A.9D5.html
1F:推 ian90911: 先寫在這個事件裡就可以了 05/01 13:02
不好意思 事件是? 剛學還不太清楚... 還是我站內信您?
※ 編輯: z0809777 (218.166.48.176), 05/01/2016 13:09:54
2F:→ CiC: 這個"button1_Click"方法 顧名思義就是按鈕button1被Click時 05/01 16:22
3F:→ CiC: 要做什麼事. 至於真正在哪設定button1在Click時要執行此方法 05/01 16:23
4F:→ CiC: 假設此方法寫在 form1.cs,一般會有個 Form1.Designer.cs 05/01 16:24
5F:→ CiC: 裡面會有行 button1.Click += button1_Click; 05/01 16:24
6F:→ CiC: 意思就是這個按鈕的Click事件,被綁定到這個方法 05/01 16:25
7F:→ testPtt: 我想他應該是問要怎麼寫function算出A[i] 05/01 16:27
8F:→ CiC: 不過通常Winform程式都是去IDE畫面上點2下按鈕 05/01 16:28
9F:→ CiC: 自動產生Click方法並綁定,讓IDE幫你產生Designer.cs內容 05/01 16:29
10F:→ CiC: 若是這樣,計算邏輯就要請他自己想想了 XD 05/01 16:30
11F:→ testPtt: for(...)加括號{這邊算出A[i];sum = sum + A[i];} 05/01 16:35
t大 我照你的方式打會出現這樣
http://imgur.com/HFQqGcV
12F:→ CiC: 我懂testPtt的意思了,那建議原po閱讀MSDN的"方法"章節 05/01 16:35
好 我會去看看的
※ 編輯: z0809777 (218.166.48.176), 05/01/2016 17:13:55
14F:→ testPtt: 在算之前加個A[i]=0;試試 05/01 18:23
還是不行 我加在for(...){A[i]=0; .....}
※ 編輯: z0809777 (218.166.48.176), 05/01/2016 18:37:41
15F:推 Frozenmouse: 你的 i 一次跳 4,但陣列長度只有101... 05/01 18:51
我改102 跑得出來了 但值是o 我不是用double 不是應該會有小數點了?
※ 編輯: z0809777 (218.166.48.176), 05/01/2016 19:27:18
16F:推 Frozenmouse: 先轉型成 double 再運算,整數運算後最後還是整數 05/01 20:12
請問怎麼轉 我google int轉double 試了很久 算出來還是0....orz
※ 編輯: z0809777 (218.166.48.176), 05/01/2016 21:12:11
17F:→ theTai: 你要運算的對象應該是i而不是A[i]吧 05/01 22:49
18F:→ theTai: 陣列A在宣告後從未賦值,因此各元素都是預設值0 05/01 22:50
19F:→ theTai: 其實陣列A是不需要的 05/01 22:52
20F:推 sakuraakira: 0 + 100個0 最後還是0 05/02 09:11
21F:推 Frozenmouse: A確實是贅物,不過原po這樣寫就順著講了XD 05/02 10:56
22F:→ Frozenmouse: 轉型的話 A[i] = (double) i * (i + 1) ...; 就好 05/02 10:57
23F:→ Frozenmouse: 我比較好奇你是試了什麼方法不行 05/02 10:58
24F:→ lucky1lk: 看不懂你程式碼的意圖@@ 05/02 14:33
看完大家的推文我把陣列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