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: 1205
Points: 3004
Join date: 11/11/2009
Age: 33
Đế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 4: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: 1205
Points: 3004
Join date: 11/11/2009
Age: 33
Đế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: 1205
Points: 3004
Join date: 11/11/2009
Age: 33
Đế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: Sat Aug 23, 2014 4:35 am