01/10/2018, 09:28

Nhờ mọi người góp ý: Phương thức tìm chuỗi dài nhất ngắn nhất trong lớp!

Em có bài tập như sau mong mọi người góp ý cho:

  • Viết chương trình đĩnh nghĩa lớp mảng chuỗi ký tự với các thuộc tính n là số chuỗi và mảng chuỗi. Với các phương thức khởi tạo, nhập, xuất, tìm chiều dài max, tìm chiều dài min.

  • Chương trình chính: Nhập vào một đối tượng lớp mảng chuỗi, nhập thông tin cho s, hiển thị ra màn hình, gọi phương thức max trả về chuỗi dài nhất, tương tự mới mịn.
    Em đã làm rồi nhưng có vẻ nó chạy không đúng cho lắm, mọi người xem giúp em ở cái hàm tìm max và min nhé, em viết vậy đã ổn chưa ạ? Cảm ơn mọi người nhiều!

    #include
    #include<string.h>
    using namespace std;
    class array_string
    {
    private:
    char *n;
    public:
    array_string(){
    n=new char[100];
    }
    ~array_string(){
    delete []n;
    }
    void nhap();
    void xuat();
    friend void max(array_string *A, int n);
    friend void min(array_string *A, int n);
    };
    void array_string::nhap()
    {
    cout << "Nhap vao chuoi mang: "; fflush(stdin); gets(n);
    }
    void array_string::xuat()
    {
    cout << n << endl;
    }
    /void swap(array_string &p, array_string &q)
    {
    array_string temp;
    p=temp;
    p=q;
    q=temp;
    }
    /
    void max(array_string *A, int n)
    {
    int max;
    max = strlen(A[1].n);
    for (int i=0; i<n; i++)
    if (strlen(A[i].n)>max)
    A[i].xuat();
    }
    void min(array_string *A, int n)
    {
    int min;
    min = strlen(A[1].n);
    for (int i=0; i<n; i++)
    if (strlen(A[i].n)<min)
    A[i].xuat();
    }
    main()
    {
    int n;
    array_string *A;
    cout << "Nhap vao so chuoi mang: "; cin >> n;
    A=new array_string[n];
    if (A!=NULL)
    {
    for (int i=0; i<n; i++)
    {
    A[i].nhap();
    }
    for (int i=0; i<n; i++)
    {
    A[i].xuat();
    }
    cout << “/-----------------------------------------------------/” << endl;
    max(A,n);
    min(A,n);
    }
    delete []A;
    }

Bài liên quan
0