我知道當函數調用自己的時候,它被稱爲遞歸。但是當函數A調用調用A的函數B時,如何調用,直到有一個IF語句停止整個過程。看看這個演習從一架C書(順便說一句我能解決這個更好?)函數A調用調用函數A的函數B,你稱之爲什麼?
寫,顯示四個編號的選擇菜單和 要求您選擇一個功能。 (輸出應看起來像上面的那樣)。
編寫一個函數,它有兩個int參數:一個下限和一個 的上限。該函數應該從輸入中讀取一個整數。如果 整數超出極限,則函數應該再次打印菜單 (使用此問題的「a」部分中的函數)重新提示 用戶,然後獲得新值。當輸入正確限制的整數 時,函數應該將該值返回到調用的 函數。
使用 這個問題的部分「a」和「b」的函數編寫一個最小程序。通過最小化,我們的意思是它實際上不需要執行菜單承諾的動作 ;它應該只顯示選項並獲得有效回覆。
#include <stdio.h>
void Display(void);
int Limits(int a, int b);
int main(void)
{
Display();
return 0;
}
void Display()
{
int y = 0;
printf("1 - 2 - 3 - 4\n");
y = Limits(0, 100);
if(y < 100 && y > 0)
printf("%d\n", y);
}
int Limits(int a, int b)
{
int x;
scanf("%d", &x);
if(x < a || x > b)
Display();
return x;
}
OUTPUT:
1 - 2 - 3 - 4
1234
1 - 2 - 3 - 4
34456
1 - 2 - 3 - 4
123
1 - 2 - 3 - 4
-34
1 - 2 - 3 - 4
-23
1 - 2 - 3 - 4
88
88
Press [Enter] to close the terminal ...
這就是所謂的[相互遞歸(http://en.wikipedia.org/wiki/Mutual_recursion)。 – jxh 2013-03-23 17:11:11
@ user315052此外,在> 2個函數的一般情況下,[* indirect recursion *](http://en.wikipedia.org/wiki/Recursion_(computer_science)#Direct_and_indirect_recursion)。 – TC1 2013-03-23 17:12:42
很高興我知道適當的條款,因爲英語不是我的第一語言,所以它很難谷歌它(功能A調用B,調用A ...) – balky 2013-03-23 17:15:45