Hiển thị kết quả từ 1 đến 6 / 6
  1. #1
    Tham gia
    08-04-2010
    Bài viết
    53
    Like
    0
    Thanked 2 Times in 1 Post

    Xem giúp bt tìm kí tự nào xuất hiện nhiều nhất

    Đề: Nhập vào 1 chuỗi, kiểm tra xem chữ nào xuất hiện nhiều nhất, niếu có 2 chữ cùng số lần xuất hiện nhiều thì xuất 2 chữ đó luôn.
    vd:dien dan tin hoc
    xuất ra: chữ n xuất hiện 2 lần
    PHP Code:
    #include<iostream.h>
    #include<string.h>
    void NhapChuoi(char *s)
    {
        
    cout<<"nhap vao 1 chuoi:";
        
    cin.getline(s,100);
    }
    void SapXep(char *s)
    {
        
    int n=strlen(s);
        for(
    int i=0;i<n-1;i++)
            for(
    int j=i+1;j<n;j++)
            {
                if(
    s***91;i***93;>s***91;j***93;)
                {
                    
    int tam=s***91;i***93;;
                
    s***91;i***93;=s***91;j***93;;
                
    s***91;j***93;=tam;
                }
            }
    }

    void XuatHienNhieu(char *s,int d***91;***93;)
    {
        
    int n=strlen(s);
        
    int dem=1;
        
    int m=0;
        
    char t;
        for(
    int i=0;i<n-1;i++)
        {
            if(
    s***91;i***93;==s***91;i+1***93;||s***91;n***93;=='\0')
            
    dem++;
            else
            {
                if(
    dem>m)
                {
                
    m=dem;
                
    t=s***91;i***93;;
                }
                
    dem=1;
            }
        }
    cout<<"Ki tu xuat hien nhieu nhat :"<<t<<" voi "<<m<<" lan";
    }
    void main()
    {
        
    char *s;
        
    int d***91;100***93;;
        
    s=new char***91;100***93;;
        
    NhapChuoi(s);
        
    SapXep(s);
        
    XuatHienNhieu(s,d);


    ý bài này là sắp xếp từ nhỏ đến lớn, niếu có 2 chữ trùng nhau thì dem tăng,niếu đếm nào lớn nhất thì xuất từ đó ra, nhưng niếu có 2 chữ cùng số lần xuất hiện lớn nhất thì k làm dc. Mong các pác chỉ giáo!
    Quote Quote

  2. #2
    Tham gia
    19-04-2010
    Bài viết
    156
    Like
    0
    Thanked 1 Time in 1 Post

    Đếm số lần xuất hiện của các ký tự và in ra những thằng xuất hiện nhiều nhất

    Quote Được gửi bởi Pho-bo View Post
    Đề: Nhập vào 1 chuỗi, kiểm tra xem chữ nào xuất hiện nhiều nhất, niếu có 2 chữ cùng số lần xuất hiện nhiều thì xuất 2 chữ đó luôn.
    vd:dien dan tin hoc
    xuất ra: chữ n xuất hiện 2 lần
    ý bài này là sắp xếp từ nhỏ đến lớn, niếu có 2 chữ trùng nhau thì dem tăng,niếu đếm nào lớn nhất thì xuất từ đó ra, nhưng niếu có 2 chữ cùng số lần xuất hiện lớn nhất thì k làm dc. Mong các pác chỉ giáo!
    PHP Code:
    #include<stdio.h>

    void count(char *str)
    {
        const 
    int size 256;
        
    char ascii***91;size***93;;
        for (
    int k 0sizek++) ascii***91;k***93; = 0;

        while (*
    strascii***91;*str++***93;++;

        
    printf("\nSo cac ky tu xuat hien trong xau:\n"); 
        for (
    k33<sizek++)
            if (
    ascii***91;k***93;) printf("Ky tu %c\t so lan: %d\n"kascii***91;k***93;);

        
    int v=0;

        for (
    k=33sizek++) 
            if (
    ascii***91;k***93; > vascii***91;k***93;;
        
        
    printf("Cac ky tu xuat hien nhieu nhat (%d lan) la:\n"v);
        for (
    k=33sizek++) 
            if (
    ascii***91;k***93; == vprintf("%c\t"k);
        
    }

    void main()
    {
        
    char str***91;100***93;;
        
    printf("\nNhap xau: "); gets(str);
        
    count(str);


  3. #3
    Tham gia
    08-04-2010
    Bài viết
    53
    Like
    0
    Thanked 2 Times in 1 Post

    Thông tin

    Quote Được gửi bởi onminh View Post
    PHP Code:
    #include<stdio.h>

    void count(char *str)
    {
        const 
    int size 256;
        
    char ascii***91;size***93;;
        for (
    int k 0sizek++) ascii***91;k***93; = 0;

        while (*
    strascii***91;*str++***93;++;

        
    printf("\nSo cac ky tu xuat hien trong xau:\n"); 
        for (
    k33<sizek++)
            if (
    ascii***91;k***93;) printf("Ky tu %c\t so lan: %d\n"kascii***91;k***93;);

        
    int v=0;

        for (
    k=33sizek++) 
            if (
    ascii***91;k***93; > vascii***91;k***93;;
        
        
    printf("Cac ky tu xuat hien nhieu nhat (%d lan) la:\n"v);
        for (
    k=33sizek++) 
            if (
    ascii***91;k***93; == vprintf("%c\t"k);
        
    }

    void main()
    {
        
    char str***91;100***93;;
        
    printf("\nNhap xau: "); gets(str);
        
    count(str);

    Bạn giải thích dùm mình được không? mình đọc vô k hiểu gì hết.

  4. #4
    Tham gia
    19-04-2010
    Bài viết
    156
    Like
    0
    Thanked 1 Time in 1 Post
    Hãy lấy giấy, bút ra. Giấy là bộ nhớ, bút ghi quá trình thay đổi thì hiểu liền mà, chỉ ngẫm nghĩ thôi thì phải cỡ ông Einstein.

  5. #5
    Tham gia
    31-03-2009
    Bài viết
    86
    Like
    0
    Thanked 1 Time in 1 Post
    Quote Được gửi bởi onminh View Post
    Hãy lấy giấy, bút ra. Giấy là bộ nhớ, bút ghi quá trình thay đổi thì hiểu liền mà, chỉ ngẫm nghĩ thôi thì phải cỡ ông Einstein.
    Bạn này viết code good thật
    @Chủ thead : Vấn đề không khó đâu bạn, chúng ta có tối đa 256 ký tự, bạn này cho chứa trong mảng , với mỗi phần tử của mảng là 1 ký tự (Mã ascii), sau đó cứ duyệt cái chuỗi đưa vào, đụng ký tự nào lấy cái mảng có ký tự tương ứng + 1 lên thôi.
    Ví dụ : a[92], mình duyệt cái chuỗi đụng chữ A thì lấy a[92] cộng thêm 1 vào thôi. ( Với 92 là mã ascii của chữ A hoa chẳng hạn).

    Viết vậy nhìn rườm rà quá, đọc code dễ hiểu hơn á!

  6. #6
    Tham gia
    19-04-2010
    Bài viết
    156
    Like
    0
    Thanked 1 Time in 1 Post
    Quote Được gửi bởi vn.minh View Post
    Bạn này viết code good thật
    @Chủ thead : Vấn đề không khó đâu bạn, chúng ta có tối đa 256 ký tự, bạn này cho chứa trong mảng , với mỗi phần tử của mảng là 1 ký tự (Mã ascii), sau đó cứ duyệt cái chuỗi đưa vào, đụng ký tự nào lấy cái mảng có ký tự tương ứng + 1 lên thôi.
    Ví dụ : a[92], mình duyệt cái chuỗi đụng chữ A thì lấy a[92] cộng thêm 1 vào thôi. ( Với 92 là mã ascii của chữ A hoa chẳng hạn).

    Viết vậy nhìn rườm rà quá, đọc code dễ hiểu hơn á!
    Đúng thế, phải động não một chút, dễ thôi mà.

Bookmarks

Quy định

  • Bạn không thể tạo chủ đề mới
  • Bạn không thể trả lời bài viết
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình
  •