C 語言使用冪函式的遞迴重寫,以便它可以計算負指數,執行錯誤以尋求指導

發布 科技 2024-04-01
13個回答
  1. 匿名使用者2024-02-07

    include 遞迴覆蓋 power() 函式,以便它可以輸出負指數。

    double power(double n,int p)double pow,s;

    if(n==0&&p ||n==1)

    return n;

    else if(p>0) {

    pow=n*power(n,p-1);

    return pow;

    else if(p<0) {

    s=power(n,-p);這個地方有錯誤!!

    return 1/s;

    else return 1;

    int main (void)

    double x;

    int n;

    scanf("%lf%d",&x,&n);

    power(x,n);

    printf("%.3lf to the power %d is %.5lf",x,n,power(x,n));

    return 0;

    房東還應該注意,0 的冪是 1

  2. 匿名使用者2024-02-06

    else y=1/x*power(x,n+1);操作順序為 (1 x)*power(x,n+1); x 是負數,1 x 是沒有意義的,自然會摺疊 此外,scanf 的雙引號中的內容不需要逗號。

  3. 匿名使用者2024-02-05

    int ex(int a)

    這一段只設定了a不等於1的條件,即函式巢狀,而沒有考慮a=1時的情況,即a=1時應返回1。

    將其替換為如下所示:int ex(int a)。

    elsereturn 1;}

  4. 匿名使用者2024-02-04

    include 檢視您的環境以及需要哪些標頭檔案。

    int ex(int a)

    int main()

  5. 匿名使用者2024-02-03

    b 沒有分配初始值,遞迴約束也不完美。 因此:1.當函式ex()中的a>1,b賦值為ex(a-1)*a時,結果是正確的; 2. 當 a=1 時,b 未賦值,b 輸出隨機值; 3.當a<1時,由於b=ex(a-1)*a,且結束條件為a==1,它將無限遞迴,成為無限迴圈。

    此外,函式宣告應位於函式體之外。

  6. 匿名使用者2024-02-02

    第四行:int ex(int a); 為什麼?

    函式宣告? 它應該寫在 main 函式之外。

  7. 匿名使用者2024-02-01

    這也可以計算到功率。

    #include

    main()

    至於你的程式,你放倒數第二行**。

    pow=n*power_negative(n,q-1);

    更改為 PoW=N*Power Positive(N,Q-1); 試試吧。

  8. 匿名使用者2024-01-31

    有人已經幫你改正了,所以我會在**中指出你的錯誤。

    if(q>0)

    pow=n*power_negative(n,q-1);

    re=1/pow;

    然而,從表面上看,這是真的,根據 re=1 pow。 那麼前面的都應該對權力是積極的。 例如,(-3) 第乙個迴圈 p1=a*p(a,-2)、第二個迴圈 p2=a*(a,-1) 和第三個迴圈,而遞迴至少有乙個特定值,當某個值是特定的並且不能一直呼叫時。

    暫且不考慮具體值,上一次我們重新=1 pow,之前的pow是多少??? 邏輯混亂...... 你應該考慮一下。

    這個程式用遞迴實現實在是多餘,當然你正在訓練遞迴,建議你用遞迴來練習。

  9. 匿名使用者2024-01-30

    Brother:這是因為最終的返回值根本不是你想返回的數字,比如你把返回值改成return,結果還是原來的結果。

    在遞迴術語中,只有第一次執行的函式才能返回最終結果返回的值,其他函式的返回值不可能是最有效的函式,例如您的函式。

    大概過程是這樣的。

    f( ) 我會稍微改變你的,你的會起作用的。

    #include

    #include

    float f(int i, float a)else }

    int main()

  10. 匿名使用者2024-01-29

    您一次都沒有宣告函式名稱。

  11. 匿名使用者2024-01-28

    提醒一下,沒有跳出交付宣告,因此迴圈繼續。

  12. 匿名使用者2024-01-27

    在 n 為整數的情況下,當 n 大於 1 時,(1 (n-1))+1 n) 的值必須為 0,當 0 傳遞到函式中時,將出現類似 1 0 的錯誤。

  13. 匿名使用者2024-01-26

    遞迴函式,如果不在裡面加return就錯了,遞迴就計算到最低級別,然後帶著return返回,逐層返回結果!!

相關回答
6個回答2024-04-01

linklist reserve_fei(linklist l,int n)

n 是做什麼的。 >>>More

2個回答2024-04-01

簡而言之,遞迴是指應用程式呼叫自身來查詢和訪問分層資料結構。 使用遞迴可以使**更加簡潔明瞭,可讀性更強(不一定適合初學者),但是因為遞迴需要系統棧,所以空間消耗比非遞迴要大得多,如果遞迴深度太大,系統資源可能不夠用。 >>>More

8個回答2024-04-01

分號是語句結尾的符號,但迴圈後不使用分號,if、and 子函式如 long long a (int b) 等,其他所有都用了,但不能加兩個分號,雖然不會造成錯誤,但可能會影響結果。

7個回答2024-04-01

修改網路引數? 你能詳細說明一下你想改變什麼嗎?

8個回答2024-04-01

方法步驟。

開啟 VS2012 - 檔案 - 新建 - 專案。 >>>More