Gia sư Cần Thơ, Dạy Kèm Cần Thơ

VỮNG TIN - TIẾP BƯỚC - THÀNH CÔNG

    Một số bài tập về mảng 1 chiều

    Share

    admin
    Admin
    Admin

    Tổng số bài gửi: 1203
    Points: 2998
    Join date: 11/11/2009
    Age: 32
    Đến từ: Cần Thơ

    Một số bài tập về mảng 1 chiều

    Bài gửi  admin on Fri Mar 26, 2010 10:37 pm

    1. Viết hàm nhập một mảng số nguyên gồm n phần tử.
    2. Viết hàm in mảng số nguyên gồm n phần tử
    3. Viết hàm tìm phần tử lớn nhất của mảng
    4. Viết hàm tìm phần tử lớn nhất trong mảng (trả về giá trị và chỉ số).
    5. Viết hàm tìm phần tử nhỏ nhất trong mảng (trả về giá trị và chỉ số).
    6. Viết hàm in ra các số nguyên tố trong mảng
    7. Viết hàm đếm các số nguyên tố trong mảng
    8. Viết hàm trung bình cộng các số nguyên tố trong mảng
    9. Viết hàm tính tổng các phần tử chẵn chia hết cho 3.
    10. Tính trung bình cộng các phần tử lẻ
    11. Viết hàm tính tổng các số chính phương trong mảng
    12. Viết hàm liệt kê các số chính phương trong mảng
    13. Viết hàm sắp xếp mảng theo thứ tự tăng dần.
    14. Viết hàm in ra các số lẻ theo thứ tự trị tuyệt đối tăng dần, các số chẵn theo thứ tự trị tuyệt đối giảm dần.
    15. Hãy xoá bất kỳ phần tử trong mảng theo hai cách:
      - Xoá khi biết vị trí muốn xoá.
      - Xoá phần tử có giá trị là x.

    16. Viết chương trình nhập vào một mảng 1 chiều, sau đó tìm xem trong mảng có đoạn tăng nào có số phần tử nhiều nhất.
    17. Viết chương trình nhập vào một mảng 1 chiều, sau đó tìm xem trong mảng có đoạn tăng nào có tổng lớn nhất.
    18. Viết chương trình nhập vào mảng 1 chiều có n phần tử (có thể dùng hàm randomize cho nhanh) sau đó xuất ra phần tử nào xuất hiện trong mảng nhiều nhất và xuất hiện bao nhiêu lần.
    19. Cho mảng số nguyên độ dài n.
      - In ra mảng con các phần tử dương dài nhất
      - In ra mảng con có tổng lớn nhất.
      VD: cho mảng -1 30 2 -2 3 1 5 6 -5 4 8
      - In ra mảng con là: 3 1 5 6
      - In ra: 30 2

    20. Đảo mảng 1 chiều gồm n phần tử nhập từ bàn phím.


    Được sửa bởi Admin ngày Fri May 27, 2011 7:45 am; sửa lần 2.

    vo_thanh_long
    Nhập môn
    Nhập môn

    Tổng số bài gửi: 7
    Points: 8
    Join date: 14/11/2009

    Câu 1,2,3,4,5

    Bài gửi  vo_thanh_long on Mon Apr 05, 2010 9:44 pm

    Code:

    #include"conio.h"
    #include"stdio.h"
    void nhap(int a[],int &n)
    {
      printf("nhap vao so phan tu cua mang");
      scanf("%d",&n);
      for(int i=0;i<n;i++)
      {
        printf("a[%d]=",i+1);
        scanf("%d",&a[i]);}
    }
    void xuat(int a[],int n)
    {
      for(int i=0;i<n;i++)
      printf("%3d",a[i]);
    }
    int Tim_Max(int a[],int n)
    {
      int max=a[0];
      for(int i=1;i<n;i++)
        if(a[i]>max)
          max=a[i];
      reurn max;
    }
    void Tim_Max(int a[],int n,int &max, int &vt)
    {
      max=a[0];
      vt=0;
      for(int i=1;i<n;i++)
        if(a[i]>max)
        {
          max=a[i];
          vt=i;
        }
    }
    void Tim_Min(int a[],int n,int &min, int &vt)
    {
      min=a[0];
      vt=0;
      for(int i=1;i<n;i++)
        if(a[i]<min)
        {
          min=a[i];
          vt=i;
        }
    }

     



    vo_thanh_long
    Nhập môn
    Nhập môn

    Tổng số bài gửi: 7
    Points: 8
    Join date: 14/11/2009

    Câu 19

    Bài gửi  vo_thanh_long on Tue Apr 06, 2010 11:22 pm

    Code:

    void Mang_Con(int a[],int n)
    {
       int *b;
       int i,j,vt;
       int dem=0;
       int max;
       b=new int[n];
       for(i=0;i<n;i++)
       {
          b[i]=0;
       }
       for(i=0;i<n;i++)
       {
          if(a[i]>0)
          {
             dem++;
          }
          else if(dem>0)
          {
             b[i-dem]=dem;
             dem=0;
          }
       }
       if(dem>0)
       {
          b[i-dem]=dem;
       }
       max=b[0];
       vt=0;
       for(i=0;i<n;i++)
       if(max<b[i])
       {
          max=b[i];
          vt=i;
       }
       j=vt+max;
       while(vt<j)
       {

          printf("%3d",a[vt]);
          vt++;
       }
    }
    void Mang_ConTong(int a[],int n)
    {
       int *b;
       int i,j,vt;
       int dem=0;
       int tong=0;
       int max;
       b=new int[n];
       for(i=0;i<n;i++)
       {
          b[i]=0;
       }
       for(i=0;i<n;i++)
       {
          if(a[i]>0)
          {
             dem++;
             tong+=a[i];
          }
          else if(dem>0)
          {
             b[i-dem]=tong;
             dem=0;
             tong=0;
          }
       }
       if(dem>0)
       {
          b[i-dem]=tong;
       }
       max=b[0];
       vt=0;
       for(i=0;i<n;i++)
       if(max<b[i])
       {
          max=b[i];
          vt=i;
       }
            while((vt<n) &&( a[vt]>0))
       {
          printf("%3d",a[vt]);
          vt++;
       }
    }

    admin
    Admin
    Admin

    Tổng số bài gửi: 1203
    Points: 2998
    Join date: 11/11/2009
    Age: 32
    Đến từ: Cần Thơ

    Re: Một số bài tập về mảng 1 chiều

    Bài gửi  admin on Wed Apr 07, 2010 8:13 am

    Thuật toán liệt kê mảng con dương dai nhất k cần dùng mảng b để lưu trữ lại ta có thể sử dụng hai biết luu vị trí và đếm là đủ.
    Code:
       int vitri=0, dodai=0 ,d=0;
       for(int i = 0, i<n,i++)
       if(a[i]>0)
          d++;
       else
       {
          if(d>dodai)
             vitri = i-d;
             dodai = d;
          else
             d = 0;
       }
       //ta tim duoc doan duong dai nhat xuat phat tu vitri va co dodai


    Được sửa bởi Admin ngày Wed Apr 07, 2010 10:50 pm; sửa lần 2.

    vo_thanh_long
    Nhập môn
    Nhập môn

    Tổng số bài gửi: 7
    Points: 8
    Join date: 14/11/2009

    Re: Một số bài tập về mảng 1 chiều

    Bài gửi  vo_thanh_long on Wed Apr 07, 2010 3:33 pm

    Admin đã viết:Thuật toán liệt kê mảng con dương dai nhất k cần dùng mảng b để lưu trữ lại ta có thể sử dụng hai biết luu vị trí và đếm là đủ.
    Code:
       int vitri=0, dodai=0 ,d=0;
       for(int i = 0, i<n,i++)
       if(a[i]>0)
          d++;
       else
       {
          if(d>dodai)
             vitri = i-d;
             dodai = d;
          else
             d = 0;
       }
       //ta tim duoc doan duong dai nhat xuat phat tu vitri va co dodai
    biến d (if(d>dem))làm gì hả thầy?

    yuglangvn
    Nhập môn
    Nhập môn

    Tổng số bài gửi: 10
    Points: 22
    Join date: 03/10/2010

    Câu 8

    Bài gửi  yuglangvn on Sun Oct 24, 2010 6:58 pm

    Code:
    int KiemTraSoNguyenTo(int n)
    {
       if (n<=1)
           {
               return 0;
           }
           for (int i=2;i<n;i++)
           {
               if (n%i==0)
               {
                      return 0;
               }
           }

           return 1;

    }

    //Trung binh cong cac so nguyen to
    float TBCong(int a[], int n)
    {
       int s=0;
            float temp=0;
            for (int i= 0; i<n; i++)
            {
               if (KiemTraSoNguyenTo(a[i])==1)
                    {
                       s=s+a[i];
                            temp++;
                    }
            }
            if (temp == 0)
            {
               printf("\nMang ko co so thoa yeu cau ");
                return 0;
            }
            return s/temp;
    }


    admin
    Admin
    Admin

    Tổng số bài gửi: 1203
    Points: 2998
    Join date: 11/11/2009
    Age: 32
    Đến từ: Cần Thơ

    Re: Một số bài tập về mảng 1 chiều

    Bài gửi  admin on Wed Dec 08, 2010 10:53 am

    yuglangvn đã viết:
    Code:
    int KiemTraSoNguyenTo(int n)
    {
       if (n<=1)
           {
               return 0;
           }
           for (int i=2;i<n;i++)
           {
               if (n%i==0)
               {
                      return 0;
               }
           }

           return 1;

    }

    //Trung binh cong cac so nguyen to
    float TBCong(int a[], int n)
    {
       int s=0;
            float temp=0;
            for (int i= 0; i<n; i++)
            {
               if (KiemTraSoNguyenTo(a[i])==1)
                    {
                       s=s+a[i];
                            temp++;
                    }
            }
            if (temp == 0)
            {
               printf("\nMang ko co so thoa yeu cau ");
                return 0;
            }
            return s/temp;
    }

    Code:
    char KiemTraSoNguyenTo(int n)
    {
      if (n<2)
              return 0;
      else
      {
          for (unsigned int i=2;i<=sqrt(n);i++)
          {
              if (n%i==0)
              {
                      return 0;
              }
          }
          return 1;
      }
    }

      Hôm nay: Mon Apr 21, 2014 1:23 am