Hàm Tính Tổng Các Phần Tử Trong Mảng Nguyên Bằng đệ Quy Trang chủ » đệ Quy Tính Tổng Mảng » Hàm Tính Tổng Các Phần Tử Trong Mảng Nguyên Bằng đệ Quy Có thể bạn quan tâm đê Quy Trong C đệ Quy Trong Code đệ Quy Trong Giai Thừa đệ Quy Trong Python Là Gì đệ Quy Tuyến Tính Hàm tính tổng các phần tử trong mảng nguyên bằng đệ quy programming c Lep_Xep (Lép Xẹp) May 18, 2016, 4:52pm #1 Em đang viết hàm tính tổng các phần tử trong mảng nguyên bằng đệ quy nhưng lại bị lỗi mà e ko biết sửa ntn. mong mọi người thông giúp em với #include <stdio.h> #include <stdlib.h> void NhapMang(int a[], int n) { if(n > 0) { NhapMang(a, (n-1)); printf("Nhap phan tu thu %d: ",n); scanf("%d", &a[n-1]); } } int TongCacPhanTu(int a[], int n) { if(n = 1) { return TongCacPhanTu(a, n); printf("%d", n); } return TongCacPhanTu(a, (n-1)+n); printf("%d", (n-1)+n); } void main() { int a[100], n; printf("Nhap so phan tu cua mang: "); scanf("%d", &n); NhapMang(a,n); TongCacPhanTu(a, n); printf("Tong cac phan tu trong mang la: %d\n", TongCacPhanTu(a,n)); system("pause"); } frostphantom (Chế Tiệp Chân Khoa) May 18, 2016, 3:17pm #2 Lep_Xep: NhapMang(a, (n-1)); printf(“Nhap phan tu thu %d: “,n); scanf(”%d”, &a[n-1]); đem NhapMang(a, (n-1)); xuống dưới bạn chưa scanf mà đã call hàm rồi còn sai nhiều lắm, chỗ if(n=1) sẽ đệ quy vĩnh viễn nói chung mình chưa hiểu bạn định làm gì Lep_Xep (Lép Xẹp) May 18, 2016, 3:31pm #3 à tại mình nghỉ là nếu n = 1 thì mảng có 1 chữ số nên trả về mảng luôn. Vậy là sai rồi tcm (Người bí ẩn) May 18, 2016, 10:59pm #4 Tổng các phần tử trong mảng nguyên th dùng vòng lặp ok rồi, cần gì recursion? Phong_Ky_Vo (Tao Không Ngu.) May 19, 2016, 2:32am #5 This post was flagged by the community and is temporarily hidden. Lep_Xep (Lép Xẹp) May 19, 2016, 8:46am #6 dùng vòng lặp thì dễ quá nhưng mà thầy đang cho bài tập bắt xài đệ quy 1 Like tcm (Người bí ẩn) May 19, 2016, 8:47am #7 À Thế thì cứ làm nhé Nhưng sau này, bạn sẽ hiểu là nên giải 1 bài toán bằng cách ngắn gọn nhất. Đệ quy hình như có làm tốn bộ nhớ hơn ấy Lep_Xep (Lép Xẹp) May 19, 2016, 8:54am #8 ừ bạn thầy cũng nói là bí lắm thì mới xài đệ quy hoặc là bị bắt ép xài thì mới xài . còn ko thì không nên xài. dù sao cũng cảm ơn bạn 1 Like nghia (cescnghia) May 19, 2016, 9:26am #9 Bạn đã làm chưa ? Đây cũng là 1 cách làm nè: int recursion(int* tab, int len, int acc); int main(void) { int tab[] = {1,2,3,4,5,-15}; printf("%d\n", recursion(tab, 6, 0)); return 0; } int recursion(int* tab, int len, int acc){ if (len < 0) return acc; else { int newAcc = acc + tab[--len]; return recursion(tab, len, newAcc); } } Lep_Xep (Lép Xẹp) May 19, 2016, 3:02pm #10 cảm ơn bạn mình sẽ lưu lại cách này để tham khảo. Sáng thầy mới sửa Summoner_s_Rift (Summoner's Rift) June 14, 2020, 11:56am #11 void nhapmangdequy(int a[], int n) { if (n>0) { nhapmangdequi(a,n-1); printf("Nhap phan tu thu :%d",n-1); scanf("%d",&a[n-1]); } } Summoner_s_Rift (Summoner's Rift) March 18, 2018, 1:37am #12 Bạn này thật sự hiểu đệ quy dấy bạn ạ , nếu như đem dequy xuống dưới như bạn khi nó chạy đế cuối cùng n=0(cái này debug rồi hiểu nhé) nó lần lượt trả về n=1 nhưng nếu như vậy thì nó đã in nhập mảng 9 rồi nhé :)) bạn học kĩ sẽ thấy đệ quy nó giống stack như thế nào rogp10 (rogp10) March 18, 2018, 2:40am #13 Bây giờ thì phải lần từ từ để hiểu (stack trace, chạy tay: lệnh phải chạy từ 1, 2, 3, …) để sau này hiểu đại thể, nhưng vẫn phải debug 1 Like noname00 (HK boy) March 18, 2018, 9:02am #14 1 YEAR LATER Có ai đó đang dùng IE thì phải… if(n = 1) Chỗ này đợi đệ quy đến mùa quýt à n=1 thì kết thúc mọi thứ luôn rồi. Đem đệ quy xuống dưới hay lên trên cũng như nhau cả thôi, chỉ là đem xuống dưới thì thuận mắt và dễ debug hơn thôi. rogp10 (rogp10) March 18, 2018, 9:50am #15 Không hẳn, đệ quy đuôi sẽ ra 9, 8, 7, 6, 5, … còn muốn 1, 2, 3, … thì viết như thớt. 1 Like Jacare_Junior (Jacaré Junior) March 18, 2018, 3:12pm #16 Bạn truyền size mảng vào rồi trừ nó đi, nhỏ hơn 0 thì dừng… cách đó thử xem :v Thai_Nhan_Ngoc (Thái Nhan Ngọc) June 14, 2020, 9:26am #17 chú ý return về 0 nhé b :v dưới đây là một cách tương tự #include<iostream> using namespace std; int tongmang(int a[],int n); int main() { int b[100]; int m; cout<<"moi nhap so phan tu :"; cin>>m; cout<<"moi nhap tung phan tu :"; for(int i = 0;i < m;i++) { cout<<"a["<<i<<"]"; cin>>b[i]; } cout<<"mang vua nhap :\n "; for( int i = 0;i < m ;i++) { cout<<b[i]<<"\t"; cout<<"\ntongmang : = "<<tongmang(b,m - 1)<<endl; return 0; } } int tongmang(int a[],int n) { if(n == 0) { return a[0]; return a[n - 1] + tongmang(a,n - 1); } } noname00 (HK boy) split this topic June 14, 2020, 9:24am #18 A post was merged into an existing topic: Topic lưu trữ các post off-topic - version 3 DayNhauHoc's Discord Học C++ Free? Click Blog Dạy Nhau Học Tự Học Lập Trình 83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao? Từ khóa » đệ Quy Tính Tổng Mảng Viết Hàm đệ Quy Trả Về Tổng Các Phần Tử Trong Mảng - CodeLearn Tính Tổng Mảng Một Chiều Bằng đệ Quy Trong C++? - Cộng đồng C Việt Luyện Tập đệ Quy (phần 2) - Phuong's Blog Tổng Hợp Các Bài Toán Về đệ Quy Trong C - Học 3 Giây [PDF] Bài 5: Đệ Quy Top 14 đệ Quy Tính Tổng Mảng NNLT-C++: Đệ Quy - Tính Tổng Mảng - YouTube Tính Tổng Các Phan Tu Nguyên To Trong Mảng Bằng De Quy Bài Toán Tính Tổng Các Phần Tử Trong Mảng Dùng đệ Quy: - Tài Liệu Text Tính Tổng Các Phần Tử Trong Mảng C++ Sử Dụng Hàm Và Con Trỏ Tính Tổng Các Giá Trị âm Trong Mảng Một Chiều Các Số Thực Bằng C Tổng Hợp Một Số Bài Tập Về Đệ Quy Trong C - VietTuts Cho Mảng 1 Chiều Các Số Nguyên. Viết Hàm Tính Tổng Các Số Chẵn ... [Lập Trình C++ Cơ Bản] Bài 11: Hàm đệ Quy - Viblo Hàm đệ Quy Trong Lập Trình Và Minh Họa Với C++ - Góc Học IT Tính Tổng N Số Sử Dụng đệ Quy Trong C