Từ 1 tới 7 trên tổng số 7 kết quả

Đề tài: <Mảng Động>So sánh giữa các phần tử với nhau trong ArrayList

  1. #1
    Ngày gia nhập
    01 2009
    Bài viết
    64

    Mặc định <Mảng Động>So sánh giữa các phần tử với nhau trong ArrayList

    VD mình muốn so sánh 2 phần tử của cùng 1 mảng ArrayList xem phần tử nào lớn hơn thì làm thế nào
    VD như là Mình muốn sắp xếp 1 mảng thế này,nhưng nó bị lỗi rồi ,ý mình là sẽ không sử dụng phương thức sort trong Arraylist để sắp xếp đâu nhé

    Code:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Collections;
    namespace ConsoleApplication1
    {
        class Program
        {
            public void sapxep(ArrayList A, int n)
            {
                int temp;
                for (int i = 0; i < n; i++)
                {
                    for (int j = i + 1; j < n; j++)
                    {
                        if (A[i] <= A[j])
                        {
                            A[i] = temp;
                            temp = A[j];
                            A[j] = A[i];
                        }
                    }
                }
            }
            static void Main(string[] args)
            {
                int n = new int();
                int temp = new int();
                ArrayList A= new ArrayList();
                Console.Write("NHAP SO PHAN TU: ");
                n = int.Parse(Console.ReadLine());
                for (int i = 0; i < n; i++)
                {
                    Console.WriteLine("\nNHAP PHAN TU THU: ");
                    temp = int.Parse(Console.ReadLine());
                    A.Add(temp);
                }
                sapxep(A, n);
            }
        }
    }

  2. #2
    Ngày gia nhập
    03 2008
    Bài viết
    11

    bạn ơi coi lai chổ nay nè
    Code:
    public void sapxep(ArrayList A, int n)
            {
                int temp;
                for (int i = 0; i < n; i++)-------------->  i < n-1  chu ko fai i < n
                {
                    for (int j = i + 1; j < n; j++)
                    {
                        if (A[i] <= A[j])------> bằng nhau thì hoán vị làm gì  VDbạn hoán vị 3 với 3 xem  ra cái gì nên A[i] < A[j]
                        {
                            A[i] = temp;
                            temp = A[j];
                            A[j] = A[i];
                        }
                    }
                }
            }
    mình cũng còn kém lắm

  3. #3
    Ngày gia nhập
    01 2009
    Bài viết
    64

    Code:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Collections;
    namespace ConsoleApplication1
    {
        class Program
        {
            public void sapxep(ArrayList A, int n)
            {
                int temp;
                for (int i = 0; i < n; i++)
                {
                    for (int j = i + 1; j < n; j++)
                    {
                        if (A.Item(i) <= A.Item(j))
                        {
                            A.Item(i) = temp;
                            temp = A.Item(j);
                            A.Item(j) = A.Item(i);
                        }
                    }
                }
            }
            static void Main(string[] args)
            {
                int n = new int();
                int temp = new int();
                ArrayList A= new ArrayList();
                Console.Write("NHAP SO PHAN TU: ");
                n = int.Parse(Console.ReadLine());
                for (int i = 0; i < n; i++)
                {
                    Console.WriteLine("\nNHAP PHAN TU THU: ");
                    temp = int.Parse(Console.ReadLine());
                    A.Add(temp);
                }
                sapxep(A, n);
            }
        }
    }
    sai cú pháp không phải sai logic bạn ah,hehe,mình có tìm trong MSDN thấy có cái Item nhưng lại không dùng được,chẳng hiểu sao

  4. #4
    Ngày gia nhập
    07 2007
    Nơi ở
    TP.HCM
    Bài viết
    199

    Lần sau bạn nên nói luôn nó báo gì, lỗi dòng nào... thì người ta dễ giúp hơn.

    ArrayList.Item(i) trả về kiểu object, không thể so sánh 2 đối tượng kiểu object, phải ép kiểu:
    Visual C# Code:
    1. if ((int)A.Item(i) <= (int)A.Item(j))

    Bạn nên dùng generic List<T> thì hay hơn.
    Đã được chỉnh sửa lần cuối bởi DKhanh : 09-02-2009 lúc 09:19 AM.

  5. #5
    Ngày gia nhập
    01 2009
    Bài viết
    64

    ------ Build started: Project: ConsoleApplication9, Configuration: Debug Any CPU ------
    C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Csc. exe /noconfig /nowarn:1701,1702 /errorreport:prompt /warn:4 /defineEBUG;TRACE /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0. 50727\System.Data.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0. 50727\System.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0. 50727\System.Xml.dll /debug+ /debug:full /optimize- /out:obj\Debug\ConsoleApplication9.exe /target:exe Program.cs Properties\AssemblyInfo.cs
    C:\vCSharp\ConsoleApplication9\ConsoleApplication9 \Program.cs(18,29): error CS0117: 'System.Collections.ArrayList' does not contain a definition for 'Item'
    C:\vCSharp\ConsoleApplication9\ConsoleApplication9 \Program.cs(18,47): error CS0117: 'System.Collections.ArrayList' does not contain a definition for 'Item'
    C:\vCSharp\ConsoleApplication9\ConsoleApplication9 \Program.cs(20,32): error CS0117: 'System.Collections.ArrayList' does not contain a definition for 'Item'
    C:\vCSharp\ConsoleApplication9\ConsoleApplication9 \Program.cs(21,39): error CS0117: 'System.Collections.ArrayList' does not contain a definition for 'Item'
    C:\vCSharp\ConsoleApplication9\ConsoleApplication9 \Program.cs(22,32): error CS0117: 'System.Collections.ArrayList' does not contain a definition for 'Item'
    C:\vCSharp\ConsoleApplication9\ConsoleApplication9 \Program.cs(22,49): error CS0117: 'System.Collections.ArrayList' does not contain a definition for 'Item'
    C:\vCSharp\ConsoleApplication9\ConsoleApplication9 \Program.cs(40,13): error CS0120: An object reference is required for the nonstatic field, method, or property 'ConsoleApplication9.Program.sapxep(System.Collect ions.ArrayList, int)'
    C:\vCSharp\ConsoleApplication9\ConsoleApplication9 \Program.cs(11,21): (Related location)

    Compile complete -- 7 errors, 0 warnings
    ========== Build: 0 succeeded or up-to-date, 1 failed, 0 skipped ==========
    làm theo cậu có tận 7 lỗi liền nè
    đây là code làm theo cậu :(
    Code:
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Collections;
    
    namespace ConsoleApplication9
    {
        class Program
        {
            public void sapxep(ArrayList A, int n)
            {
                int temp;
                for (int i = 0; i < n; i++)
                {
                    for (int j = i + 1; j < n; j++)
                    {
                    	if ((int)A.Item(i) <= (int)A.Item(j))
                        {
                            (int)A.Item(i) = temp;
                            temp = (int)A.Item(j);
                            (int)A.Item(j) = (int)A.Item(i);
                        }
                    }
                }
            }
            static void Main(string[] args)
            {
                int n = new int();
                int temp = new int();
                ArrayList A= new ArrayList();
                Console.Write("NHAP SO PHAN TU: ");
                n = int.Parse(Console.ReadLine());
                for (int i = 0; i < n; i++)
                {
                    Console.WriteLine("\nNHAP PHAN TU THU: ");
                    temp = int.Parse(Console.ReadLine());
                    A.Add(temp);
                }
                sapxep(A, n);
            }
        }
    }

  6. #6
    Ngày gia nhập
    07 2007
    Nơi ở
    TP.HCM
    Bài viết
    199

    Mặc định <Mảng Động>So sánh giữa các phần tử với nhau trong ArrayList

    Nó báo ArrayList không có hàm Item, bạn dùng sai rồi. ghi A[i] thay vì A.Item[i]

  7. #7
    Ngày gia nhập
    01 2009
    Bài viết
    64

    Code:
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Collections;
    namespace ConsoleApplication9
    {
        class sort
        {
            public void sapxep(ArrayList A, int n)
            {
                int temp = new int() ;
                temp = 0;
                for (int i = 0; i < n; i++)
                {
                    for (int j = i + 1; j < n; j++)
                    {
                    	if ((int)A[i]<= (int)A[j])
                        {
                            A[i] = temp; 
                            temp = (int)A[j];
                            A[j] = A[i];
                        }
                    }
                }
                for (int i = 0; i < n; i++)
                {
                    Console.Write("\nPHAN TU THU: {0}", A[i]);
                }
            }
        }
        class Program
        {
            static void Main(string[] args)
            {
                sort B = new sort();
                int n = new int();
                int temp = new int();
                ArrayList A= new ArrayList();
                Console.Write("NHAP SO PHAN TU: ");
                n = int.Parse(Console.ReadLine());
                for (int i = 0; i < n; i++)
                {
                    Console.Write("\nNHAP PHAN TU THU: ");
                    temp = int.Parse(Console.ReadLine());
                    A.Add(temp);
                }
                B.sapxep(A, n);
            }
        }
    }
    Mình làm đúng theo thuật toán,vậy mà nó lại in ra lung tung

Các đề tài tương tự

  1. Bài tập C xóa phần tử trùng nhau trong mảng 1 chiều để lại 1 phần tử
    Gửi bởi ronoa trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 06-01-2012, 10:46 PM
  2. Sử dụng Arraylist để lưu 2 mảng số nguyên giống nhau?
    Gửi bởi nguyenthang0702 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 08-03-2011, 10:38 AM
  3. Thủ tục loại bỏ các phần tử trùng nhau, giữ lại duy nhất 1 phần tử trong DSLK
    Gửi bởi mrtyoffline trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 02-03-2011, 10:27 PM
  4. add vào phần tử vào ArrayList trên C#??
    Gửi bởi nvthanh0812483 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 7
    Bài viết cuối: 12-01-2010, 08:28 PM
  5. Truy xuất phần tử của ArrayList trong C#?
    Gửi bởi nvthanh0812483 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 6
    Bài viết cuối: 11-01-2010, 10:21 PM

Quyền hạn của bạn

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