看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《tohru (PPP)》之銘言: : 不好意思 這是我在自修C語言時遇到的問題 : 我在寫n的m次方時 : debug好久總算結果跑對了 : 可是還是想請問一下黃色部分 : 為什麼不可以在宣告時就設定 k=1 呢? : 這樣改結果就錯了 : 頭昏昏想了好久還是想不太出來 : 所以想請教一下版友 thx~ : #include <stdio.h> : #include <stdlib.h> : int main() : { : int n, m, i, j, k; : printf("求n的m次方值?\n\n"); : printf("請輸入n值: "); : scanf("%d", &n); : printf("\n請輸入m值: "); : scanf("%d", &m); : for(i=1;i<=n;i++) : { : k=1; : for(j=1;j<=m;j++) : { : k = k*i; // 次方由循環實現 : } : } : printf("\n所以 %d 的 %d 次方 = %d\n", n, m, k); : system("pause"); : return 0; : } 可以呀 你可以在宣告時就把k設成1 不過 依你的寫法 也必須在每次迴圈重來的時候 把k重設為1吧 如果沒有k=1這句 你的k會一直變大 這樣子就和你的原意不同了呀 其實 我覺得用一個迴圈是不是就能完成了呀 幫你小改一下 參考看看 #include <stdio.h> #include <stdlib.h> int main() { int n, m, j, k=1; printf("求n的m次方值?\n\n"); printf("請輸入n值: "); scanf("%d", &n); printf("\n請輸入m值: "); scanf("%d", &m); for(j=1;j<=m;j++) { k = k*n; // 次方由循環實現 } printf("\n所以 %d 的 %d 次方 = %d\n", n, m, k); system("pause"); return 0; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.105.169.120
tohru:謝謝你的回覆 這樣程式很簡單明瞭 我好像弄得太複雜了 05/01 16:21