Code:
int TimGTLNDQ(int ary[],unsigned size)
{
int m;
if(size==1)
return ary[0];
else
{
m=TimGTLNDQ(ary,size-1);
// gọi đệ quy liên tục cho đến khi gặp phần tử thứ 2 ( vị trí thứ nhất )
if(m<ary[size-1]) // so sánh nó với phần tử liền trước
m=ary[size-1];
return m;
}
}
vậy với mảng ary[6]={2,3,6,4,8,1} thì code chạy như sau có đúng không :
đầu tiên m=1 , sau đó so sánh với ary[4]=8 , nếu m<ary[4] thì gán m=8 , sau đó return m ( gọi lại hàm TimGTLNDQ(int ary[],unsigned size) lại chạy tiếp tới khi size==1 thì return a[0])
Vậy kết quả sau khi trả về là a[0] chứ, đâu phải m