c语言中常见的数组练习题

练习题一:

题目:输入数字进入数组中,长度任意,内容任意。       

代码:

Console.WriteLine("请输入数字的个数");  //数组的个数
            int  a = int.Parse(Console.ReadLine());                      
           int[] arr= new int[a];                    //定义一个新的数组
            for (int i = 0; i < arr.Length; i++)   //循环输入进数组中的各个数字
            {
                int b = i;
                b++;                              //输出第b个数组,计数用
                Console.WriteLine("请输入第"+b+"个数组的内容");
                arr[i] = int.Parse(Console.ReadLine());       //关键点,数组中的内容
            }
            for (int j = 0; j < arr.Length; j++)   //输出数组中的数字
            {
                Console.Write(arr[j]);
            }

练习题二:

题目:用数组输出1-100的数字

代码:

int[] arrr = new int[100];          //定义一个容量为100的数组
             for (int i = 0; i < 100; i++)         //将1-100分别输入数组中
             { 
                 arrr[i] = i+1;
                 Console.WriteLine(arrr[i]);
             }

练习题三:

题目:   输入五个数字在数组中,判断数字的最大值和最小值,并求出最大值和最小值的和

代码:

int[] arr = new int[5] { 5,10,454,45,2};  //长度为5的新数组
             int max = arr[0];            //定义一个初始最大值
             int min = arr[0];            //定义一个初始最小值
             for (int i = 0; i < arr.Length; i++)
             {
                 max = max > arr[i] ? max : arr[i];    //三目运算符 
                 min = min < arr[i] ? min : arr[i];
             }

             Console.WriteLine(max);   //输出最大值
             Console.WriteLine(min);   //输出最小值
             int num = max + min;        //求和
             Console.WriteLine(num);

练习题四:

题目:一个长度为5的数组,将无序数组变为有序数组,从小到大排列

   

代码一(冒泡算法):


            int[] arr = new int[5] { 4,10,41,14,2};                                
            for (int i = 0; i < arr.Length-1; i++)       //外循环次数等于长度-1(排序总轮次)
            {             
              for (int j = 0; j < arr.Length-i-1; j++)   //内循环次数=长度-1-i(每轮对比数)
                {
                               
                    if (arr[j]>arr[j+1])
                    {
                        int num = arr[j];
                        arr[j] = arr[j+1];     //置换位置代码(交换代码)****
                        arr[j+1] = num;
                    }                    
                }              
            }
            for (int i = 0; i < arr.Length; i++)   //输出数组中的内容
            {
                Console.WriteLine(arr[i]);
            }
            

代码二(简单算法):

int[] arr = new int[] {1,2,4,5,10,201,12,42,82 };
            
            for (int i = 0; i < arr.Length; i++)     
            {
                for (int j = i; j < arr.Length; j++)      //将前面位置最小的值定位
                {
                    if (arr[i]>arr[j])
                    {
                        int num = arr[i];
                        arr[i] = arr[j];        //置换位置,将小的数往前面放置
                        arr[j] = num;
                    }
                }              
            }
            for (int i = 0; i < arr.Length; i++)   //输出新数组
            {
                Console.WriteLine(arr[i]);
            }

练习题五:

题目:求数组内容的和并求出它们的平均值。

代码:

int[] arr = new int[] { 1, 2, 4, 5, 10, 201, 12, 42, 82 };
            float sum = 0;       //定义一个和的变量,这里用float是因为求平均值的时候会产生小数
            for (int i = 0; i < arr.Length; i++)
            {
                sum += arr[i];       //将数组中的每个数逐渐相加
            }
            sum /= arr.Length;       //求平均值,sum即为数组的和,看想要输出的内容是什么
            Console.WriteLine(sum);

练习题六:

题目:  int[] oldarr = new int[] { 1, 3, 4, 5, 0, 0, 6, 6, 0, 5, 4, 7, 6, 7 ,0 ,5}; 将这一段数组中的0去掉,形成一个新的数组。

 

代码:

int[] oldarr = new int[] { 1, 3, 4, 5, 0, 0, 6, 6, 0, 5, 4, 7, 6, 7 ,0 ,5};            
            int count=0;
            for (int i = 0; i < oldarr.Length; i++)
            {
                if (oldarr[i]!=0)
                {
                    count++;                       //求出旧数组中非0的个数
                }
            }
            int[] newarr = new int[count];         //定义一个新的数组,数组长度为上面的个数
            int a = 0;                             //新数组的下标
            for (int j = 0; j < oldarr.Length; j++)
            {
                if (oldarr[j] != 0)
                {
                    newarr[a] = oldarr[j];        //将新数组的内容逐渐换为旧数组中非0的数
                    a++;                         //新数组的下标逐渐增加                   
                }
            }
            for (int i = 0; i < newarr.Length; i++)
            {
                Console.WriteLine(newarr[i]);    //输出新的数组
            }

你可能感兴趣的:(c#,算法,开发语言,c++,visual,studio)