看板 TransCSI 關於我們 聯絡資訊
稍微簡化... ----- Please Input An Positive Integer Here: 5 Ans = (1) + (1 + 2) + (1 + 2 + 3) + (1 + 2 + 3 + 4) + (1 + 2 + 3 + 4 + 5) = 35 請按任意鍵繼續 . . . ----- ↑執行結果 #include <stdio.h> #include <stdlib.h> int main() { int i, j, num, ans = 0; rekey: printf("Please Input An Positive Integer Here: "); scanf("%d", &num); if (num <= 0) { printf("Error!!\n"); goto rekey; } printf("\nAns = "); for (i = 0; i < num; i++) { printf("("); for (j = 0; j < i + 1; j++) printf("%s%d", (j == 0) ? "" : " + ", j + 1); printf("%s", (i == (num - 1)) ? ")" : ") + "); ans += ((1 + (i + 1)) * (i + 1) / 2); } printf("\n = %d\n\n", ans); system("PAUSE"); return 0; } ※ 引述《gnqwertyuiop (中華炒麵)》之銘言: : ※ 引述《idea1825 (小貝殼)》之銘言: : : 我使用的是:Dev C++ : : 程式大概是這樣:(我簡略打粉多,意思到就好= =") : : int i; : : int sum; : : ......................................(我先省略掉) : : //輸入一整數值:n : : printf("從1加到n的整數值為%i, sum); : 前文恕刪 : 我用C語言寫 : 然後就像pelin大大說的 : +跟()要和數字以及總和分開討論 : 我才開始學寫C : 只會用一些簡單的語法寫Orz... : 寫的不好別見怪(≧<>≦) : 因為只用一個迴圈的話 : 好像只能解1+2+3+...+n : 所以我用巢狀迴圈去寫 : i是表示大迴圈 : k是表示小迴圈 : ex: : (1)+(1+2)+(1+2+3)=10 : 綠色部分是i在處理 : 黃色部份在k在處理 : 最後的等於多少就放在巢狀迴圈外面 : 另外由於 +號比迴圈少一次 : 所以我就多寫了一個IF去控制 : 下面附上程式碼 : #include <stdio.h> : #include <stulib.h> : int main(void) : { : int i,j,k,suma=0,sumb=0; : printf("請輸入一個數字:\n"); : scanf("%d",&j); : for (i=1;i<j+1;i++) : { : printf("("); : for (k=1;k<i;k++) : { : printf("%d",k); : printf("+"); : } : suma=suma+i; : sumb=suma+sumb; : printf("%d)",i); : if (i<j) : { : printf("+\n"); : } : } : printf("=%d",sumb); : system("pause"); : } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.57.132.241