我哪寫錯了(幫看看吧)囧
#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
int get_sum(int n){
int sum=0;
int tmp,i=1,j=1;
whlie(i<=9)
{
tmp=1;
while(j<=i)
{
tmp=i*tmp;
j=j 1;
}
sum=tmp sum;
i=i 1;
}
return sum;
}
void main()
{
int n;
This:printf("請輸入N值(n從0-9):"); scanf("%d",&n);
if (n>9)
{
printf("請重新輸入'\n");
goto This;
}
printf("%d\n",get_sum(n));
system("PAUSE");
//return 0;
}
這是算1^1 2^2 ....... n^n答案不對囧哪寫錯了呢@@沒bug的說
int get_sum(int n) 參數 n 好像在函式裏面都沒用到
這樣不管 n 是多少, 得到的結果都一樣吧
-----應該不一樣至少我測時是這樣
get_sum裏的迴圈應該是 while (i
get_sum裏的迴圈應該是 while (i
上面補充當作沒看吧囧恩,照Mark所說我會改過(有問題再貼上來再幫我看看吧........)用for喔,我寫出來了....就是想用while也寫出來,研究中,感謝回答= =
回Mark大大我在tmp=1;之後加入了 if(i
回Mark大我在tmp=1;之後加入了 if(j
我終於搞定,感謝Mark大
1 個解答
- MarkLv 52 0 年前最佳解答
int get_sum(int n) 參數 n 好像在函式裏面都沒用到
這樣不管 n 是多少, 得到的結果都一樣吧
get_sum裏的迴圈應該是 while (i<=n) 而不是 while (i<=9)
另外, while (j<=i)之前應該先 j = 1 才對
你只有一開始有設 j = 1, 之後都沒有了
在 while (i <= n)迴圈內, 每次都應該先把 j 設為1
建議使用 for 迴圈會比較清楚
for (i=1; i<=n; i++)
{
tmp = 1;
for (j=1; j<=i; j++)
{ tmp = i*tmp; }
sum = sum + tmp;
}