該代碼可以返回目標數字的位置。但是,如果目標編號不在數組中,那麼程序應該返回-1。還需要我只使用遞歸。使用遞歸查找數組中第一個目標數字的出現
下面是代碼:
#include <stdio.h>
int rLookupAr(int ar[], int n, int target);
int main() {
int a[80];
int target, i, size;
printf("Enter array size: ");
scanf("%d", &size);
printf("Enter %d numbers: ", size);
for (i = 0; i < size; i++)
scanf("%d", &a[i]);
printf("Enter target number: ");
scanf("%d", &target);
printf("rLookupAr(): %d", rLookupAr(a, size, target));
return 0;
}
int rLookupAr(int ar[], int n, int target) {
/* write your code here */
if (ar[0] == target) {
if (n == 0)
return -1;
else
return 0;
} else
return 1 + rLookupAr(ar + 1, n - 1, target);
}
你應該在'ar'的引用之前移動'if(n == 0)'check *。您還需要檢查'-1'的遞歸調用的返回值。 – EOF
問題是什麼?爲什麼你的代碼不工作? – Charlie
@Charlie如果目標編號不在數組中,則rLookupAr()將返回-1。 < - 我無法得到這部分。 – Aung