Làm thế nào để nhập xuất mảng sử dụng đệ quy trong C/C++?
1
1
xuans2huy • 510
đã đăng:
Hàm nhập mảng sử dụng kỹ thuật đệ quy,
void nhapMang(int A[], int n, int i = 0){
// Điều kiện dừng
if(i == n) // Dừng đệ quy khi chỉ số i = n (n: số lượng phần tử của mảng)
return;
// Nhập mảng
printf("Nhap phan tu thu A[%d] = ", i);
scanf("%d", &A[i]);
// Gọi lại hàm đệ quy
// đồng thời tăng giá trị của chỉ số i lên
// điều này cũng tương tự như sử dụng vòng lặp for để duyệt mảng.
nhapMang(A, n, i + 1);
}
Hàm xuất mảng sử dụng kỹ thuật đệ quy,
void xuatMang(int A[], int n, int i = 0){
// Điều kiện dừng
if(i == n)
return;
// Xuất mảng
printf("%5d", A[i]);
// Gọi lại hàm đệ quy
xuatMang(A, n, i + 1);
}
Sử dụng hai hàm đã được cài đặt ở trên vào trong hàm main
là xong,
int main(){
int n;
int A[100]; // Khởi tạo mảng chứa 100 phần tử
printf("Nhap so luong phan tu cua mang = ");
scanf("%d", &n);
nhapMang(A, n);
printf("Mang da nhap la:\n");
xuatMang(A, n);
printf("\n");
return 1;
}
Ý tưởng cơ bản thì bạn @HữuHiệp đã trình bày rồi, mình không còn gì để nói thêm nữa, có gì thắc mắc bạn có thể bình luận bên dưới, chúc học tốt với kĩ thuật lập trình đệ quy :D.
thêm bình luận...
Bạn chưa đăng nhập, vui lòng đăng nhập để thêm câu trả lời.
Bạn đang thắc mắc? Ghi câu hỏi của bạn và đăng ở chế độ cộng đồng (?)
Bài viết đệ quy trong lập trình là gì? sẽ giúp ích được cho bạn nếu bạn mới bắt đầu với khái niệm đệ quy, hãy thử nghĩ một chút, một kĩ thuật đệ quy cần có:
i
khii
bằng0
hoặc bằngn
(n
là số lượng phần tử của mảng.i
để tiến tới điều kiện dừngn
hoặc0
và đồng thời đừng quên chèn thêm 2 câu lệnh nhập/xuất mảng nữa là xong.