Re: [問題] n的m次方

看板C_and_CPP (C/C++)作者 (penguinbaby)時間16年前 (2009/05/01 16:10), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《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

05/01 16:21, , 1F
謝謝你的回覆 這樣程式很簡單明瞭 我好像弄得太複雜了
05/01 16:21, 1F
文章代碼(AID): #19-gvV8I (C_and_CPP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
1
6
完整討論串 (本文為第 2 之 2 篇):
1
6
文章代碼(AID): #19-gvV8I (C_and_CPP)