编程实践53

假定有一个数组,已经存放有互不相同的整数。输入一个数,要求从数组删除与该数相同的元素,并将其后的元素逐个向前替补,最后一个元素置0。输出删除后的数组。如原数组中无此数,则输出“无此数”。

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace _5_3
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] dA;
            int i,j,dB;
            int ia;

            

            dA = new int[10];
            Random ran = new Random();

            for (i = 0; i < dA.Length; i++)
            {
                dA[i] = Convert.ToInt32(ran.Next(1, 20));
                Console.Write("{0} ",dA[i]);
            }


            Console.WriteLine("请输入一个数字:");
            dB = Convert.ToInt32(Console.ReadLine());
            ia = 0;

            for (i = 0; i < dA.Length; i++)
            {
                if (dA[i] == dB)
                {
                    dA[i] = 0;
                    ia++;
                    for (j = i + 1; j <= dA.Length-ia; j++)
                    {
                        dA[j - 1] = dA[j];
                    }
                    dA[dA.Length - ia] = 0;
                    i--;
                }
            }
            if (ia == 0)
            {
                Console.WriteLine("没有找到次数!");
            }
            else
            {

                Console.WriteLine("删除相同元素后:");
                for (i = 0; i < dA.Length; i++)
                {
                    Console.Write("{0} ", dA[i]);
                }
            }


            //Console.WriteLine("\n重新排列后:");

            //for (i = 0; i < dA.Length; i++)
            //{
            //    Console.Write("{0,2}", dA[i]);
            //}
            //for (i = 0; i < dA.Length; i++)
            //{
            //    for (j = 0; j < dA.Length - 1; j++)
            //    {
            //        if (dA[j] == 0)
            //        {
            //            dA[j] = dA[j] + dA[j + 1];
            //            dA[j + 1] = dA[j] - dA[j + 1];
            //            dA[j] = dA[j] - dA[j + 1];
            //        }
            //    }


            //}
            //for (i = 0; i < dA.Length; i++)
            //{
            //    Console.Write("{0} ", dA[i]);
            //}
            Console.ReadKey();
        }
    }
}

老师优化后效率高了很多。

原文地址:https://www.cnblogs.com/Wzqa/p/2780429.html