Chủ Nhật, 1 tháng 7, 2018

(C#) Bài tập 10: Xử lý mảng 1 chiều (P2)

Đề bài: 
- Nhập m, n để tạo 2 mảng số nguyên ngẫu nhiên A[n] và B[m] có giá trị khoảng {-50,+50}. Ghép A và B thành mảng C[p] (p=m+n).  In ra mảng A,B và C.
- Sắp xếp mảng C tăng dần.
- Nhập số nguyên x, kiểm tra x có xuất hiện trong mảng C hay không, nếu có thì xuất hiện mấy lần, ở vị trí đầu tiên nào.
- Xóa các phần tử trùng nhau của mảng C, in ra mảng C mới.
Source Code đề nghị:

using System;
namespace XuLyMangP2
{
    class XLmangP2
    {
        static void Main(string[] args)
        {
            int i,j,k,m,n,p;
         
            Console.Write("Nhap so phan tu mang A: ");
            n = int.Parse(Console.ReadLine());
            Console.Write("Nhap so phan tu mang B: ");
            m = int.Parse(Console.ReadLine());
            p = m + n;
            int[] A = new int[n];
            int[] B = new int[m];
            int[] C = new int[p];
            // Tao phan tu mang A, B ngau nhien và xuat mang
            Random giatri = new Random();
            for (i = 0; i < n; i++)         
                A[i] = giatri.Next(-50, 50);
            for (i = 0; i < m; i++)
                B[i] = giatri.Next(-50, 50);         
            Console.WriteLine("\nMANG A NGAU NHIEN");
            Console.WriteLine("-----------------");
            Console.Write("[ ");
            for ( i = 0; i < n; i++)
                Console.Write("{0}", A[i] + "  ");
            Console.WriteLine("]");
            Console.WriteLine("\nMANG B NGAU NHIEN B");
            Console.WriteLine("-------------------");

            Console.Write("B[ ");
            for (i = 0; i < m; i++)
                Console.Write("{0}", B[i] + "  ");
            Console.WriteLine("]");
            // Tron 2 mang A, B thanh mang C
            Console.WriteLine("\nMANG A VA B DA TRON THANH MANG C");
            Console.WriteLine("----------------------------------");
            for (i = 0; i < n; i++)
                C[i] = A[i];
            for (j = 0; j < m; j++)
            {
                C[i] = B[j];
                i++;
            }
            Console.Write("C[ ");
            for (i = 0; i < p; i++)
                Console.Write("{0}", C[i] + "  ");
            Console.WriteLine("]");       
            // Sap xep mang C tang dan
            Console.WriteLine("\nSAP XEP MANG C TANG DAN");
            Console.WriteLine("-----------------------");
            int tam;
            for ( i = 0; i < p; i++)
                for ( j = i+1; j <p; j++)
                    if (C[i] >C[j])
                    {
                        tam= C[i];
                        C[i] = C[j];
                        C[j] = tam;
                    }
            Console.Write("C[ ");
            for ( i = 0; i < p; i++)
                Console.Write("{0}",C[i]+"  ");
            Console.WriteLine("]");
            // Kiem tra 1 so x co mat trong mang C hay khong
            Console.WriteLine("\nKIEM TRA 1 SO CO MAT TRONG MANG C");
            Console.WriteLine("--------------------------------- ");

            Console.Write("Nhap so can kiem tra: ");
            int x; int dem = 0;int vitri=0;
            x = int.Parse(Console.ReadLine());
            for (i = 0; i < p; i++)
                if (C[i] == x)
                {
                    dem = dem + 1;
                    vitri = i;
                }
            if (dem > 0)
            {
                Console.WriteLine("+ So {0} xuat hien {1} lan trong mang", x, dem);
                Console.WriteLine("+ Vi tri xuat hien dau tien : C[{0}]={1} ", vitri, x);
            }
            else
                Console.WriteLine("Khong co mat phan tu {0} trong mang C", x);
            // Xoa phan tu trung nhau trong mang C
            Console.WriteLine("\nXOA PHAN TU TRUNG NHAU-IN MANG DA XOA");
            Console.WriteLine("--------------------------------- ");
            i = 1;
            while (i < p)
            {
                j = 0;
                while (C[j] != C[i])
                    j++;
                if (j < i)
                {
                    for (k = i; k < p - 1; k++)
                        C[k] = C[k + 1];
                    p--;
                 }
                else
                    i++;
            }
        // Xuat mang da xoa cac phan tu trung nhau
            Console.Write("C[ ");
            for (i = 0; i < p; i++)
                Console.Write("{0}", C[i] + "  ");
            Console.WriteLine("]");
            Console.ReadKey();
        }
    }
}

(Có) Không có nhận xét nào cho bài viết này

Đăng nhận xét

Hãy nhập Nhận xét cho bài viết này vào khung bên dưới. Cảm ơn...