Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 18 kết quả

Đề tài: Sắp xếp phần tử trong mảng bằng C#?

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

    Talking Sắp xếp phần tử trong mảng bằng C#?

    Console.Write("nhap so phan tu vao\nn= ");
    Visual C# Code:
    1. int n = Int32.Parse(Console.ReadLine());
    2. int[] a = new int[n];
    3. for (int i = 0; i < n; i++)
    4. a[i] = Int32.Parse(Console.ReadLine());
    5.  
    6. Console.Read();
    7.  
    8. //Đếm số phần tử chắn
    9.  
    10. int[] a;
    11. int[] mangChan;
    12. int[] mangLe;
    13.  
    14.  
    15. int temp = 0;
    16. for (int i = 0; i < a.Length; i++)
    17. if (a[i] % 2 == 0 && a[i] != 0) temp++;
    18.  
    19. //Tạo mảng Chẵn và lưu vào
    20.  
    21. mangChan = new int[temp];
    22. temp = 0;
    23. for (int i = 0; i < a.Length; i++)
    24. if (a[i] % 2 == 0 && a[i] != 0)
    25. {
    26. mangChan[temp] = a[i];
    27. temp++;
    28. }
    29. //Sắp xếp tăng dần mảng chẵn
    30. for (int i = 0; i < mangChan.Length - 1; i++)
    31. for (int j = i + 1; j < mangChan.Length; j++)
    32. if (mangChan[i] > mangChan[j])
    33. {
    34. temp = mangChan[i];
    35. mangChan[i] = mangChan[j];
    36. mangChan[j] = temp;
    37. }
    38.  
    39. //Xư lý với phần tử lẻ
    40. temp = 0;
    41. for (int i = 0; i < a.Length; i++)
    42. if (a[i] % 2 != 0) temp++;
    43. //Tạo mảng lẻ và lưu vào
    44. mangLe = new int[temp];
    45. temp = 0;
    46. for (int i = 0; i < a.Length; i++)
    47. if (a[i] % 2 != 0)
    48. {
    49. mangLe[temp] = a[i];
    50. temp++;
    51. }
    52. //Sắp xếp giảm dần mảng lẻ
    53. for (int i = 0; i < mangLe.Length - 1; i++)
    54. for (int j = i + 1; j < mangLe.Length; j++)
    55. if (mangLe[i] < mangLe[j])
    56. {
    57. temp = mangLe[i];
    58. mangLe[i] = mangLe[j];
    59. mangLe[j] = temp;
    60. }
    61.  
    62. //Nối mảng
    63. for (int i = 0; i < mangChan.Length; i++)
    64. a[i] = mangChan[i];
    65. for (int i = 0; i < (a.Length - (mangChan.Length + mangLe.Length)); i++)
    66. a[mangChan.Length + i] = 0;
    67. for (int i = 0; i < mangLe.Length; i++)
    68. a[mangChan.Length + (a.Length - (mangChan.Length + mangLe.Length)) + i] = mangLe[i];
    69. //In Mảng
    70. Console.WriteLine("Mang chan:");
    71. for (int i = 0; i < mangChan.Length; i++)
    72. Console.WriteLine(mangChan[i].ToString());
    73. Console.WriteLine("Mang le:");
    74. for (int i = 0; i < mangLe.Length; i++)
    75. Console.WriteLine(mangLe[i].ToString());
    76. Console.WriteLine("Mang so da sap xep:");
    77. for (int i = 0; i < a.Length; i++)
    78. Console.WriteLine(a[i].ToString());
    79. Console.Read();
    80. }
    81.  
    82.  
    83.  
    84.  
    85. }
    86. }

    //các bạn ơi mình muốn mảng tạo ra do người nhập vào nhưng sao mình sửa đi sửa lại vẫn bị sai các bạn coi rồi giúp mình với nha
    Đã được chỉnh sửa lần cuối bởi Forlorn_hope : 22-03-2009 lúc 10:29 PM.
    không có tình yêu vĩnh cửu chỉ có những giây phút vĩnh cửu của tình yêu
    oooo0

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

    Ban đặt code vào tag code nhé. Đưa đoạn thông báo lỗi lên đây mình xem nào ?
    ttecak ?

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

    mình quên mât sorry bạn nha,
    Error 1 A local variable named 'a' is already defined in this scope C:\Documents and Settings\Home\My Documents\Visual Studio 2005\Projects\sapxepmang\sapxepmang\Program.cs 21 19 sapxepmang
    lối đo bạn,bạn copy code đó vào rùi chạy thử xem sao
    nếu dc bạn ép nick của mình vào đi hoanganh220888.
    thanks bạn n
    không có tình yêu vĩnh cửu chỉ có những giây phút vĩnh cửu của tình yêu
    oooo0

  4. #4
    Ngày gia nhập
    11 2007
    Bài viết
    153

    Visual C# Code:
    1. int[] a = new int[n];
    Và :
    Visual C# Code:
    1. int[] a;

    Bên trên khai báo rồi nên bên dưới không được khai báo lại. Mình đang cài lại vs nên không test được. Chỉ phân tích bằng mắt thôi. Bạn sửa lại xem thế nào.
    ttecak ?

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

    mình cũng sửa như bạn nói trước đó rùi nhưng cũng k dc bạn à,sửa cách nào vẫn sai mình mới pó tay chứ hic
    không có tình yêu vĩnh cửu chỉ có những giây phút vĩnh cửu của tình yêu
    oooo0

  6. #6
    Ngày gia nhập
    11 2007
    Bài viết
    153

    Mặc định Sắp xếp phần tử trong mảng bằng C#?

    Không được ở chỗ nào ? Chỗ bạn sửa hay chỗ mới ? Phải đưa lỗi lên chứ. Và cho code vào tag code nhé. Mod nào đi qua chém luôn bài này đi đấy.
    ttecak ?

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

    mình bỏ int []a;ở dòng dưới đi rùi nhưng nó khi chạy nó chỉ hiện lên dòng chữ nhập số phần tử vào mà thôi,còn các phần khác nó không chạy.
    Visual C# Code:
    1.             Console.Write("nhap so phan tu vao\nn= ");
    2.            int n = Int32.Parse(Console.ReadLine());
    3.             int[] b = new int[n];
    4.             for (int i = 0; i < n; i++)
    5.                b[i] = Int32.Parse(Console.ReadLine());
    6.  
    7.             Console.Read();
    8.              
    9.             //Đếm số phần tử chắn
    10.             int a = Int32.Parse(Console.ReadLine());
    11.        
    12.             int[] mangChan;
    13.             int[] mangLe;
    14.  
    15.  
    16.             int temp = 0;
    17.             for (int i = 0; i < a.Length; i++)
    18.                 if (a[i] % 2 == 0 && a[i] != 0) temp++;
    19.  
    20.             //Tạo mảng Chẵn và lưu vào
    21.  
    22.             mangChan = new int[temp];
    23.             temp = 0;
    24.             for (int i = 0; i < a.Length; i++)
    25.                 if (a[i] % 2 == 0 && a[i] != 0)
    26.                 {
    27.                     mangChan[temp] = a[i];
    28.                     temp++;
    29.                 }
    30.             //Sắp xếp tăng dần mảng chẵn
    31.             for (int i = 0; i < mangChan.Length - 1; i++)
    32.                 for (int j = i + 1; j < mangChan.Length; j++)
    33.                     if (mangChan[i] > mangChan[j])
    34.                     {
    35.                         temp = mangChan[i];
    36.                         mangChan[i] = mangChan[j];
    37.                         mangChan[j] = temp;
    38.                     }
    39.  
    40.             //Xư lý với phần tử lẻ
    41.             temp = 0;
    42.             for (int i = 0; i < a.Length; i++)
    43.                 if (a[i] % 2 != 0) temp++;
    44.             //Tạo mảng lẻ và lưu vào
    45.             mangLe = new int[temp];
    46.             temp = 0;
    47.             for (int i = 0; i < a.Length; i++)
    48.                 if (a[i] % 2 != 0)
    49.                 {
    50.                     mangLe[temp] = a[i];
    51.                     temp++;
    52.                 }
    53.             //Sắp xếp giảm dần mảng lẻ
    54.             for (int i = 0; i < mangLe.Length - 1; i++)
    55.                 for (int j = i + 1; j < mangLe.Length; j++)
    56.                     if (mangLe[i] < mangLe[j])
    57.                     {
    58.                         temp = mangLe[i];
    59.                         mangLe[i] = mangLe[j];
    60.                         mangLe[j] = temp;
    61.                     }
    62.  
    63.             //Nối mảng
    64.             for (int i = 0; i < mangChan.Length; i++)
    65.                 a[i] = mangChan[i];
    66.             for (int i = 0; i < (a.Length - (mangChan.Length + mangLe.Length)); i++)
    67.                 a[mangChan.Length + i] = 0;
    68.             for (int i = 0; i < mangLe.Length; i++)
    69.                 a[mangChan.Length + (a.Length - (mangChan.Length + mangLe.Length)) + i] = mangLe[i];
    70.             //In Mảng
    71.             Console.WriteLine("Mang chan:");
    72.             for (int i = 0; i < mangChan.Length; i++)
    73.                 Console.WriteLine(mangChan[i].ToString());
    74.             Console.WriteLine("Mang le:");
    75.             for (int i = 0; i < mangLe.Length; i++)
    76.                 Console.WriteLine(mangLe[i].ToString());
    77.             Console.WriteLine("Mang so da sap xep:");
    78.             for (int i = 0; i < a.Length; i++)
    79.                 Console.WriteLine(a[i].ToString());
    80.             Console.Read();
    81.         }
    82.  
    83.  
    84.  
    85.  
    86.     }
    87. }
    Đã được chỉnh sửa lần cuối bởi Forlorn_hope : 22-03-2009 lúc 10:28 PM.
    không có tình yêu vĩnh cửu chỉ có những giây phút vĩnh cửu của tình yêu
    oooo0

  8. #8
    Ngày gia nhập
    11 2007
    Bài viết
    153

    Đây là lần cuối cùng mình sửa bài cho bạn.
    Xóa dòng này đi.
    Visual C# Code:
    1. Console.Read();
    Còn đây là code hoàn chỉnh :
    Visual C# Code:
    1. using System;
    2. using System.Collections.Generic;
    3. using System.Linq;
    4. using System.Text;
    5.  
    6. namespace ConsoleApplication1
    7. {
    8.     class Program
    9.     {
    10.         static void Main(string[] args)
    11.         {
    12.             Console.Write("nhap so phan tu vao\nn= ");
    13.             int n = Int32.Parse(Console.ReadLine());
    14.             int[] a = new int[n];
    15.             for (int i = 0; i < n; i++)
    16.             a[i] = Int32.Parse(Console.ReadLine());
    17.  
    18.             //Console.Read();
    19.  
    20.             //Đếm số phần tử chắn
    21.  
    22.             //int[] a;
    23.             int[] mangChan;
    24.             int[] mangLe;
    25.  
    26.  
    27.             int temp = 0;
    28.             for (int i = 0; i < a.Length; i++)
    29.             if (a[i] % 2 == 0 && a[i] != 0) temp++;
    30.  
    31.             //Tạo mảng Chẵn và lưu vào
    32.  
    33.             mangChan = new int[temp];
    34.             temp = 0;
    35.             for (int i = 0; i < a.Length; i++)
    36.             if (a[i] % 2 == 0 && a[i] != 0)
    37.             {
    38.             mangChan[temp] = a[i];
    39.             temp++;
    40.             }
    41.             //Sắp xếp tăng dần mảng chẵn
    42.             for (int i = 0; i < mangChan.Length - 1; i++)
    43.             for (int j = i + 1; j < mangChan.Length; j++)
    44.             if (mangChan[i] > mangChan[j])
    45.             {
    46.             temp = mangChan[i];
    47.             mangChan[i] = mangChan[j];
    48.             mangChan[j] = temp;
    49.             }
    50.  
    51.             //Xư lý với phần tử lẻ
    52.             temp = 0;
    53.             for (int i = 0; i < a.Length; i++)
    54.             if (a[i] % 2 != 0) temp++;
    55.             //Tạo mảng lẻ và lưu vào
    56.             mangLe = new int[temp];
    57.             temp = 0;
    58.             for (int i = 0; i < a.Length; i++)
    59.             if (a[i] % 2 != 0)
    60.             {
    61.             mangLe[temp] = a[i];
    62.             temp++;
    63.             }
    64.             //Sắp xếp giảm dần mảng lẻ
    65.             for (int i = 0; i < mangLe.Length - 1; i++)
    66.             for (int j = i + 1; j < mangLe.Length; j++)
    67.             if (mangLe[i] < mangLe[j])
    68.             {
    69.             temp = mangLe[i];
    70.             mangLe[i] = mangLe[j];
    71.             mangLe[j] = temp;
    72.             }
    73.  
    74.             //Nối mảng
    75.             for (int i = 0; i < mangChan.Length; i++)
    76.             a[i] = mangChan[i];
    77.             for (int i = 0; i < (a.Length - (mangChan.Length + mangLe.Length)); i++)
    78.             a[mangChan.Length + i] = 0;
    79.             for (int i = 0; i < mangLe.Length; i++)
    80.             a[mangChan.Length + (a.Length - (mangChan.Length + mangLe.Length)) + i] = mangLe[i];
    81.             //In Mảng
    82.             Console.WriteLine("Mang chan:");
    83.             for (int i = 0; i < mangChan.Length; i++)
    84.             Console.WriteLine(mangChan[i].ToString());
    85.             Console.WriteLine("Mang le:");
    86.             for (int i = 0; i < mangLe.Length; i++)
    87.             Console.WriteLine(mangLe[i].ToString());
    88.             Console.WriteLine("Mang so da sap xep:");
    89.             for (int i = 0; i < a.Length; i++)
    90.             Console.WriteLine(a[i].ToString());
    91.             Console.Read();
    92.             }
    93.         }
    94. }
    ttecak ?

  9. #9
    Ngày gia nhập
    11 2007
    Nơi ở
    Biết để làm gì?
    Bài viết
    827

    katakana vẫn làm bài sắp xếp à?hình như bạn mới học C# nên mắc nhiều lỗi cơ bản quá
    Khuyến mãi thêm cho bạn cách nữa nè,ko cần dùng mảng phụ
    Visual C# Code:
    1. using System;
    2.  
    3. public class SortArray
    4. {
    5.     public static void Main()
    6.     {
    7.         int[] myArray = new int[] { 10, 7, 5, 7, 11,0, 8, 3, 2, 1, 5};
    8.         Console.WriteLine("Array before sorted:");
    9.         DisplayArray(myArray);
    10.        
    11.         //xap xep mang tang dan
    12.         Array.Sort(myArray);
    13.         //dao nguoc mang
    14.         Array.Reverse(myArray);
    15.  
    16.         //dua cac so chan len dau va sap xep
    17.         for (int i = 0; i < myArray.Length;i++ )
    18.         {
    19.             if (myArray[i]%2!=0)
    20.             {
    21.                 for (int j = i+1; j < myArray.Length;j++ )
    22.                 {
    23.                     if (myArray[j]%2==0)
    24.                     {
    25.                         int temp = myArray[i];
    26.                         myArray[i] = myArray[j];
    27.                         myArray[j] = temp;
    28.                         break;
    29.                     }
    30.                 }
    31.             }
    32.         }
    33.  
    34.         //sap xep cac so le
    35.         for (int i = 0; i < myArray.Length;i++ )
    36.         {
    37.             if (myArray[i]%2!=0)
    38.             {
    39.                 for (int j = i + 1; j < myArray.Length;j++ )
    40.                 {
    41.                     if (myArray[i]>myArray[j])
    42.                     {
    43.                         int temp = myArray[i];
    44.                         myArray[i] = myArray[j];
    45.                         myArray[j] = temp;
    46.                     }
    47.                 }
    48.             }
    49.         }
    50.  
    51.         Console.WriteLine("Array after sorted:");
    52.         DisplayArray(myArray);
    53.  
    54.         Console.ReadLine();
    55.     }
    56.     static void DisplayArray(int[] arr)
    57.     {
    58.         Console.WriteLine("\n");
    59.         for (int i = 0; i < arr.Length;i++ )
    60.         {
    61.             Console.Write("{0}\t", arr[i]);
    62.         }
    63.         Console.WriteLine();
    64.     }
    65. }
    Cánh Chym ứ mỏi

  10. #10
    Ngày gia nhập
    02 2009
    Bài viết
    27

    uhm minh mới học nên chẳng hiểu gì về nó cả,mình xin lỗi đã làm các bạn phải khổ vì mình,cám ơn bạn 555 nhìu nhìu nha,nếu mình có về hà nội nhất định mình mời bạn về quê mình chơi,bạn tốt bụng quá,bạn giúp mình nhìu thật
    không có tình yêu vĩnh cửu chỉ có những giây phút vĩnh cửu của tình yêu
    oooo0

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

  1. Lập trình C tìm xem trong mảng số nguyên i_Mang[] có bao nhiêu phần tử có giá trị âm & phần tử có giá trị âm trong mảngn
    Gửi bởi fawker 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: 29-05-2013, 03:28 PM
  2. 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
  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. Thuật toán trên C | Xóa phần tử trong dãy phần tử tăng dần?
    Gửi bởi quangphuit trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 09-03-2010, 01:57 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