Đăng Nhập

Vui lòng khai báo chính xác tên truy cập và mật khẩu!

Quên mật khẩu?

    Đếm số phần tử xuất hiện nhiều nhất

      Admin
      Admin

      Giới tính : Nam

      Đến từ : TPHCM

      Ngày Tham gia : 03/04/2011

      Tổng số bài gửi : 2292

      #1

       Mon Mar 26, 2012 7:58 pm




      Code:
      #include "stdio.h"
      #include "conio.h"
      #include "alloc.h"

      void NhapMang(int** Mang, int* SoPhanTu);
      void TimCacMax(int* Mang, int SoPhanTu);

      void main()
      {
          int *Mang, SoPhanTu;
          printf("NHAP MANG\n");
          NhapMang(&Mang,&SoPhanTu);
          printf("Cac so xuat hien nhieu nhat:\n");
          TimCacMax(Mang,SoPhanTu);
          getch();
      }

      void NhapMang(int** Mang, int* SoPhanTu)
      {
          int i;
          int *MangTam;
          //clrscr();
          do
          {
              printf("So phan tu:");
              scanf("%d", SoPhanTu);
              if(*SoPhanTu <= 0)
                  printf("Nhap sai!Nhap lai\n");
          }
          while(*SoPhanTu <= 0);
       
          MangTam = (int*)malloc(sizeof(int)*(*SoPhanTu));
          for(i=0; i < *SoPhanTu; i++)
          {
              printf("Phan tu thu %d:", i);
              scanf("%d", &MangTam[i]);
          }
          *Mang = MangTam;
      }

      void TimCacMax(int* Mang, int SoPhanTu)
      {
          int* SoLanXuatHien = (int*)malloc(sizeof(int)*SoPhanTu);
          int** ConTroSoLanXuatHien = (int**)malloc(sizeof(int*)*SoPhanTu);
          int i, j, max=0;
          for(i=0; i < SoPhanTu; i++)
          {
              SoLanXuatHien[i] = 0;
              ConTroSoLanXuatHien[i] = &SoLanXuatHien[i];
          }
         
          for(i=0; i < SoPhanTu; i++)
              if(*ConTroSoLanXuatHien[i] == 0)
              {
                  *ConTroSoLanXuatHien[i] = 1;
                  for(j = i+1; j < SoPhanTu;j++)
                      if(Mang[j] == Mang[i])
                      {
                          ConTroSoLanXuatHien[j] = ConTroSoLanXuatHien[i];
                          *ConTroSoLanXuatHien[i] += 1;
                      }
              }
          free(ConTroSoLanXuatHien);
          for(i=0; i < SoPhanTu; i++)
              if(SoLanXuatHien[i] > max) max = SoLanXuatHien[i];
          for(i=0; i < SoPhanTu; i++)
              if(SoLanXuatHien[i] == max)
                  printf("%d ",Mang[i]);
          free(SoLanXuatHien);
          printf("\nXuat hien %d lan", max);
      }
      Admin
      Admin

      Giới tính : Nam

      Đến từ : TPHCM

      Ngày Tham gia : 03/04/2011

      Tổng số bài gửi : 2292

      #2

       Mon Mar 26, 2012 8:01 pm

      Code:

      #include "conio.h"
      #include "stdio.h"

      int NhapSoNguyenDuong();
      void Nhap(int *a,int n);
      void Xuat(int *a,int n);
      int DemPT(int *a,int n,int x);/*dem so luong pt x trong mang*/
      int XuatHienNhieuNhat(int *a,int n);
      int NhapSoNguyenDuong()
      {
          int n;
          do
          {
              printf("Nhap n: ");
              scanf("%d",&n);
          }while(n<=0);
          return n;
      }

      void Nhap(int *a,int n)
      {
          for(int i=0;i<n;i++)
          {
              printf("Nhap a[%d]: ",i);
              scanf("%d",a+i);
          }
      }

      void Xuat(int *a,int n)
      {
          for(int i=0;i<n;i++)
              printf("%4d",a[i]);
      }

      int DemPT(int *a,int n,int x)
      {
          int dem=0;
          for(int i=0;i<n;i++)
              if(*(a+i)==x)
                  dem++;
          return dem;
      }

      int XuatHienNhieuNhat(int *a,int n)
      {
          int demlc=0;
          int lc;
          for(int i=0;i<n;i++)
          {
              int dem=DemPT(a,n,a[i]);
              if(dem>demlc)
              {
                  lc=a[i];
                  demlc=dem;
              }
          }
          return lc;
      }
      int main(int argc,  TCHAR* ,argv[])
      {
          int *a;
          printf("Bai07\n");
          int n= NhapSoNguyenDuong();
          a=new int [n];
          Nhap(a,n);
          printf("Mang ban dau: ");
          Xuat(a,n);
          printf("\n");
          printf("Gia tri xuat hien nhieu nhat trong mang: %4d\n",XuatHienNhieuNhat(a,n));
          delete []a;   
          return 0;