JStefan

[Rekurzija] Suma od sumi

Dec 26th, 2016
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.19 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. void citaj_niza(int[], int);
  5. void pecati_niza(int[], int);
  6. void popolni_niza(int[], int[], int);
  7. int suma_od_sumi(int [], int);
  8. int suma(int[], int);
  9.  
  10. int main()
  11. {
  12.  
  13.     int n, i;
  14.     scanf("%d", &n);
  15.  
  16.     int niza[n], rezultNiza[n+1];
  17.  
  18.     citaj_niza(niza, n);
  19.     popolni_niza(rezultNiza, niza, n);
  20.     pecati_niza(rezultNiza, n+1);
  21.  
  22.     return 0;
  23. }
  24.  
  25. void citaj_niza(int niza[], int n) {
  26.     static int i = 0;
  27.     if(i < n) {
  28.         scanf("%d", &niza[i]);
  29.         ++i;
  30.         citaj_niza(niza, n);
  31.     } else return;
  32. }
  33.  
  34. void pecati_niza(int niza[], int n) {
  35.     static int i = 0;
  36.     if(i < n) {
  37.         printf("%d\n", niza[i]);
  38.         ++i;
  39.         pecati_niza(niza, n);
  40.     } else return;
  41. }
  42. void popolni_niza(int b[], int a[], int i) {
  43.     if(i == 0) {
  44.         b[i] = 0;
  45.         return;
  46.     } else {
  47.         b[i] = suma_od_sumi(a, i-1);
  48.         popolni_niza(b, a, i-1);
  49.     }
  50. }
  51.  
  52. int suma_od_sumi(int niza[], int i) {
  53.     if(i == 0) return niza[0];
  54.     else return suma(niza, i) + suma_od_sumi(niza, i-1);
  55. }
  56.  
  57. int suma(int niza[], int i) {
  58.     if(i == 0) return niza[0];
  59.     else return niza[i] + suma(niza, i-1);
  60. }
Add Comment
Please, Sign In to add comment