23 thoughts on “[Giải bài tập lập trình C/C++] Đếm số lần xuất hiện của từng phần tử phân biệt trong mảng 1 chiều

  1. anh ơi ko bik có đc ko nhưng em đã tối ưu phần tìm phần tử phân biệt bằng cách bỏ đi b[m++]=a[0] còn vòng lặp i cho chạy theo i=0;i<n;i++ và j theo j=i+1;j<n;j++ nó vẫn ra đúng

  2. Ad ơi! Em có cái đồ án nó làm theo kiểu mang 2 chiều ma trận cũng duyệt tìm số lần xuất hiện. Mà nó muốn in ra là gồm có bao nhiêu miền. Ví dụ 1 giá trị cùng nhau cùng chung 1 cạnh qua được nếu giá trị khác nhau sẽ là 1 cái miền khác. Rồi xác định miền có giá trị lớn và nhỏ nhất ở vị trí bắt đầu là chỗ nào giá trị là bao nhiêu. Mong ad đọc và giúp dùm e. Cảm ơn nhiều ạ

  3. Có thể làm mà không cần dùng mảng phụ được không bạn. Nếu làm thế về tài nguyên lợi hay không so với dùng mảng phụ? Thanks

  4. Không dùng mảng phụ nè
    #include<stdio.h>
    #include<conio.h>
    #define MAX 100
    main()
    {
    int a[MAX], n, dem;
    do{
    printf("so luong phan tu: ");
    scanf("%d",&n);
    }while(n<=0||n>MAX);
    for(int i=0;i<n;i++)
    {
    printf("a[%d] = ",i);
    scanf("%d",&a[i]);
    }
    printf("day so: ");
    for(int i=0;i<n;i++)
    printf("%4d",a[i]);
    for(int i=0;i<n;i++)
    {
    dem=0;
    for(int j=0;j<n;j++)
    if(a[i]==a[j])
    if(i<=j)
    dem++;
    else
    break;
    if(dem!=0)
    printf("ntan suat xuat hien cua %d la %d lan",a[i],dem);
    }
    getch();
    }

  5. nếu làm như vầy mà in ra phần tử nhiều lần xuất hiện nhất thì mình làm như thế nào ạ?
    anh cho em xin thêm gợi ý ạ, em suy nghĩ vẫn chưa được .

  6. anh ơi ở hàm Tim_Phan-Tu_Phan_Biet cho em hỏi đến bước break là nó thoát khỏi if hay cái vòng for chứa j vậy a

  7. anh giúp e bài này . nhập vào 1 mảng một chiều không quá 200 phần tử . hãy đếm số phần tử có trong dãy nhanh nha anh

  8. Em làm như anh mà không được cái bước tìm số phân biệt.
    void Tim_PT_Phanbiet(int a[],int n,int b[],int &m)
    {
    m=0;
    b[m]=a[0];
    m++;
    for(int i=1;i<n;i++)
    {

    bool Kiem_Tra = true;//gia su a[i] la pt phan biet
    for(int j=i-1;j>=0;j–)
    {
    if(a[i]==a[j])
    {
    Kiem_Tra = false;//cap nhat lai a[i] khong phai pt phan biet
    break;//dung viec kiem tra
    }
    }
    if(Kiem_Tra = true)
    {
    b[m]=a[i];//dua pt phan biet vao mang b
    m++;//so luong pt mang b tang 1 don vi
    }
    }
    }
    int
    {
    Tim_PT_Phanbiet(a,n,b,m);
    cout<<"nXuat mang b chua phan tu phan biet:";
    XuatMang(b,m);
    Cau16c_In_Max_XuatHien(a,n,b,m);
    }

  9. Anh oi anh giảng hay và đẽ hiểu lắm ạ,, e cảm ơn anh,, anh tiếp tục up để tụi e đc học ké nha anh

Leave a Reply

Your email address will not be published. Required fields are marked *