Hỏi đáp

Chia sẻ kiến thức, cùng nhau phát triển

Sửa giúp em bài này với ạ

20:41 08-05-2022 674 lượt xem 3 bình luận

Sắp xếp phần tử lẻ tăng dần, chẵn giảm dần (Mảng 1 chiều C#) 

 int[] iSoPTuMang1 = new int[10];
            int[] iSoPTuMang2 = new int[10]; //mang chua phan tu chan
            int[] iSoPTuMang3 = new int[10]; //mang chua phan tu le
            int i, j = 0, k = 0, n, iTrungGian;

            Console.Write("Sap xep cac phan tu co gia tri le tang dan\n");
            Console.Write("Nhap kich thuoc mang:");
            n = int.Parse(Console.ReadLine());
            Console.Write("Nhap {0} phan tu vao mang:\n", n);
            for (i = 0; i < n; i++)
            {
                Console.Write("Phan tu {0}:", i);

                iSoPTuMang1[i] = int.Parse(Console.ReadLine());
            }

            for (i = 0; i < n; i++)
            {
                if (iSoPTuMang1[i] % 2 == 0)
                {
                    iSoPTuMang2[j] = iSoPTuMang1[i];
                    j++;
                }
                else
                {
                    iSoPTuMang3[k] = iSoPTuMang1[i];
                    k++;
                }
            }
            for (i = 0; i < n; i++)
            {
                for (j = 0; j < n; j++)
                {
                    if (iSoPTuMang2[i] < iSoPTuMang2[j])
                    {
                        iTrungGian = iSoPTuMang2[i];
                        iSoPTuMang2[i] = iSoPTuMang2[j];
                        iSoPTuMang2[j] = iTrungGian;

                    }
                }
            }
            Console.Write("\nCac phan tu chan la: \n");
            for (i = 0; i < j; i++)
            {
                Console.Write("{0} ", iSoPTuMang2[i]);
            }

            Console.Write("\nCac phan tu le la:\n");
            for (i = 0; i < k; i++)
            {
                Console.Write("{0} ", iSoPTuMang3[i]);
            }
            Console.Write("\n\n");

            Console.ReadKey();
        }
    }
}

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
pdkcoder đã bình luận 16:04 12-05-2022

Bạn tham khảo thuật toán sắp xếp rồi dùng điều kiện if để lọc chẵn lẻ

Thì bài toán sẽ tối ưu hơn đấy.

ptminh.kd@gmail.com đã bình luận 14:43 11-05-2022
for (i = 0; i < n; i++)
{
for (j = i + 1; j < n; j++)
{
if (iSoPTuMang2[i] < iSoPTuMang2[j])
{
iTrungGian = iSoPTuMang2[i];
iSoPTuMang2[i] = iSoPTuMang2[j];
iSoPTuMang2[j] = iTrungGian;

}
}
}
for (i = 0; i < n; i++)
{
for (k = i + 1; k < n; k++)
{
if (iSoPTuMang3[k] < iSoPTuMang3[i])
{
iTrungGian = iSoPTuMang3[i];
iSoPTuMang3[i] = iSoPTuMang3[k];
iSoPTuMang3[k] = iTrungGian;

}
}
}
Vo Tan Duc đã bình luận 18:10 10-05-2022
Bạn debug và chạy thử đi

Câu hỏi mới nhất