AnhVan1712

Mảng con liên tiếp có tổng lớn nhất

Jul 11th, 2020
176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.05 KB | None | 0 0
  1. // Tim mang con lien tiep co tong lon nhat
  2. #include <stdio.h>
  3. #define SIZE 1000
  4. void nhap (int &n, int A[SIZE]);
  5. void xuat (int max, int VTi, int VTj, int A[]);
  6. void xuLy (int n , int A[], int &max , int &VTi, int &VTj);
  7. int main ()
  8. {
  9.     int n, max, VTi, VTj;
  10.     int A[SIZE]={0};
  11.     nhap (n,A);
  12.     xuLy (n,A,max,VTi,VTj);
  13.     xuat (max,VTi,VTj,A);
  14.     return 0;
  15. }
  16. void nhap (int &n, int A[])
  17. {
  18.     printf ("Nhap so luong phan tu cau mang !\n");
  19.     scanf ("%d",&n);
  20.     for (int i=1;i<n+1;i++)
  21.     {
  22.         scanf ("%d",&A[i]);
  23.     }
  24. }
  25. void xuLy (int n , int A[], int &max , int &VTi, int &VTj)
  26. {
  27.     int i,j;
  28.     int S[SIZE];
  29.     S[0]=A[0];
  30.     for (i=1;i<n+1;i++)
  31.     {
  32.         S[i]=S[i-1]+A[i];
  33.     }
  34.     max=S[1];
  35.     for (i=0;i<n+1;i++)
  36.     {
  37.         for (j=i;j<n+1;j++)
  38.         {
  39.             int tongij=S[j]-S[i];
  40.             if (tongij>max)
  41.             {
  42.                 max=tongij;
  43.                 VTi=i+1;
  44.                 VTj=j;
  45.             }
  46.         }
  47.     }
  48. }
  49. void xuat (int max, int VTi, int VTj, int A[])
  50. {
  51.     printf ("Tong lon nhat cua mang con lien tiep la : %d \n",max);
  52.     printf ("Mang con tuong ung la : \n");
  53.     for (int i=VTi;i<=VTj;i++)
  54.     {
  55.         printf ("%d ",A[i]);
  56.     }
  57. }
Advertisement
Add Comment
Please, Sign In to add comment