zoukankan      html  css  js  c++  java
  • 数组复习 特殊集合

                数组
                一维数组
                需要数据类型,以及长度
                int [] array =new int[5];
                冒泡排序
                            {
                    for (int j = i; j < 4; j++)
                    {
                        if (array[i] < array[j + 1])
                        {
                            int zhong = array[i];
                            array[i] = array[j + 1];
                            array[j + 1] = zhong;
                        }
                    }
                }
                长度属性
                Console.WriteLine(array.Length);
                最后一位的索引是
                Console.WriteLine(array.Length-1);


                二维数组
                3个一维数组
                每个一维数组中有两个元素
                int[,] array = new int[3, 2];
                for (int i = 0; i < 3; i++)
                {
                    for (int j = 0; j < 2; j++)
                    {
                        array[i, j] = int.Parse(Console.ReadLine());
                    }
                }
                        {
                            {2,3},
                            {4,5},
                          {5,6}
                       };
                    for (int i = 0; i < 3; i++)
                    {
                      for (int j = 0; j < 2; j++)
                       {
                           Console.Write(array[i,j]+" ");
                       }
                    }
                    Console.ReadLine();


                三维数组    立体
                3个二维数组
                每个二维数组中有两个一维数组
                每个一维数组中有3个元素
                int [,,] array = new int[3,2,3];


               ArrayList   集合
               跟数组不同的:不用数据类型,可以随便放置
                不需要长度
                ArrayList al = new ArrayList();
                添加数据(元素)
                al.Add(2);
                al.Add(3);
                al.Add(4);
                al.Add(5);
                al.Add(6);
                在3号索引上插入7这个元素
                al.Insert(3, 7);

                移除第一个出现的某个元素
                al.Remove(3);
                移除某个索引位置的元素
                al.RemoveAt(3);

                第一次出现该值的索引号
                Console.WriteLine(al.IndexOf(4));
                最后一次
                Console.WriteLine(al.LastIndexOf(2));

                克隆
                ArrayList al1 = new ArrayList();
                al1 = (ArrayList)al.Clone()   

               清空集合
                al1.Clear();

                排序   升序
                al.Sort();
                想要降序    需要先排成升序,然后翻转集合
                al.Reverse();

                属性    个数
                Console.WriteLine(al.Count);

                二维数组
                输入班级人数,输入每个人的语数英成绩
                求语文的总分
                数学的平均分
                英语的最高分和最低分
                冒泡
                Console.Write("请输入班级人数:");
                int n = int.Parse(Console.ReadLine());
                double sum1= 0;
                double sum2 = 0;
                double zhong = 0;
                double[,] a = new double[n, 3];
                for (int i = 0; i < n; i++)
                {
                    Console.Write("请输入第"+(i+1)+"个人的语文成绩:");
                    a[i, 0] = double.Parse(Console.ReadLine());
                    sum1 +=a[i,0];
                    Console.Write("请输入第" + (i + 1) + "个人的数学成绩:");
                    a[i, 1] = double.Parse(Console.ReadLine());
                    sum2 += a[i, 1];
                    Console.Write("请输入第" + (i + 1) + "个人的英语成绩:");
                    a[i, 2] = double.Parse(Console.ReadLine());
                }
                for (int i = 0; i < n;i++ )
                {
                    for (int j = i; j < n-1;j++ )
                    {
                        if (a[i,2]<a[j+1,2])
                         zhong=a[i,2];
                        a[i, 2] = a[j + 1, 2];
                        a[j + 1, 2] = zhong;
                    }
                }
                Console.WriteLine("语文总分为"+sum1+"分");
                Console.WriteLine("数学平均分为"+sum2/n+"分");
                Console.WriteLine("英语最高分为"+a[0,2]);
                Console.WriteLine("英语最低分为"+a[n-1,2]);
                Console.ReadLine();


                ArrayList
                输入班级人数,输入每个人的姓名,语数英成绩进入一个集合
                求语文的总分
                数学的平均分
                英语的最高分和最低分的同学的所有信息
                冒泡
                (0姓名、1语文、2数学、3英语的分数)

                Console.Write("请输入班级人数:");
                int n = int.Parse(Console.ReadLine());
                ArrayList al = new ArrayList();
                double yu = 0;
                double shu = 0;
                for (int i = 0; i < n;i++ )
                {
                    Console.Write("请输入第"+(i+1)+"个学生的姓名:");
                    al.Add( Console.ReadLine());
                    Console.Write("请输入第" + (i + 1) + "个学生语文成绩:");
                    al.Add(Console.ReadLine());
                    yu += double.Parse(al[al.Count - 1].ToString());
                    Console.Write("请输入第" + (i + 1) + "个学生的数学成绩:");
                    al.Add(Console.ReadLine());
                    shu  += double.Parse(al[al.Count - 1].ToString());
                    Console.Write("请输入第" + (i + 1) + "个学生的英语成绩:");
                    al.Add(Console.ReadLine());
                }

                Console.WriteLine("成绩输入完毕,请确认!");
                Console.ReadLine();
                Console.WriteLine("语文成绩的总分:"+yu);
                Console.WriteLine("数学成绩的平均分:"+(shu/n));
                for (int i = 3; i < 4 * n - 1;i+=4 )
                {
                    for (int j = i; j < 4 * n - 4;j+=4 )
                    {
                        if  (double.Parse(al[i].ToString())<double.Parse(al[j+4].ToString()))
                        {
                            姓名
                            object zhong=al[i-3];
                            al[i-3]=al[j+1];
                            al[j + 1] = zhong;
                            语文成绩
                            zhong=al[i-2];
                            al[i-2]=al[j+2];
                            al[j + 2] = zhong;
                            数学成绩
                            zhong=al[i-1];
                            al[i - 1] = al[j + 3];
                            al[j + 3] = zhong;
                            英语成绩
                            zhong = al[i ];
                            al[i ] = al[j + 4];
                            al[j + 4] = zhong;
                        }
                    }
                }
                Console.WriteLine("英语成绩最高的是{0},英语成绩为{1},语文成绩为{2},数学成绩为{3}",al[0],al[3],al[1],al[2]);
                for (int i = 3; i < 4 * n - 1; i+=4)
                {
                    for (int j = i; j < 4 * n - 4; j+=4)
                    {
                        if (double.Parse(al[i].ToString()) > double.Parse(al[j + 4].ToString()))
                        {
                            姓名
                            object zhong = al[i - 3];
                            al[i - 3] = al[j + 1];
                            al[j + 1] = zhong;
                            语文成绩
                            zhong = al[i - 2];
                            al[i - 2] = al[j + 2];
                            al[j + 2] = zhong;
                            数学成绩
                            zhong = al[i - 1];
                            al[i - 1] = al[j + 3];
                            al[j + 3] = zhong;
                            英语成绩
                            zhong = al[i];
                            al[i] = al[j + 4];
                            al[j + 4] = zhong;
                        }
                    }
                }

                Console.WriteLine("英语成绩最低的是{0},英语成绩为{1},语文成绩为{2},数学成绩为{3}", al[0], al[3], al[1], al[2]);
                Console.ReadLine();
                           
            }

                初始化    干草堆  stack集合
                先进后出,一个一个的赋值,一个一个的取值
                Stack ss = new Stack();
                添加元素(推送)   push
                ss.Push(1);
                ss.Push(2);
                ss.Push(3);
                ss.Push(4);
                ss.Push(5);
                个数
                Console.WriteLine(ss.Count);
                弹出
                Console.WriteLine(ss.Pop());
                单纯查看,不弹出
                Console.WriteLine(ss.Peek());
                foreach(int aa in ss)
                {
                    Console.WriteLine(aa);
                }
                清空集合
                ss.Clear();

                    Console.ReadLine();


                队列集合    初始化
                先进先出,一个一个取值、赋值
                Queue que = new Queue();
                添加元素
                que.Enqueue(2);
                que.Enqueue(3);
                que.Enqueue(4);
                que.Enqueue(5);
                que.Enqueue(6);
                移除
                que.Dequeue();
                个数
                Console.WriteLine(que.Count);
                清空集合
                que.Clear();
               

                foreach (int aa in que)
                {
                    Console.Write(aa+" ");
                }

                Console.ReadLine();


                哈希表集合
                先进后出,一个一个赋值,但是只能一起取值
                初始化
                Hashtable ht = new Hashtable();
                ht.Add(1,"可口可乐");
                ht.Add(2, "雪碧");
                ht.Add(3, "百事可乐");
                ht.Add(4, "芬达");
                ht.Add(5, "美年达");
                移除(某个key值的位置的元素)
                ht.Remove(3);
                判断是否包含
                Console.WriteLine( ht.Contains(5));
                Console.WriteLine(ht.Count);
                foreach (int aa in ht.Keys)
                {
                    Console.WriteLine(aa);
                }
                foreach (string ss in ht.Values)
                {
                    Console.WriteLine(ss);
                }
                使用枚举类型来读取(表格样式)
                IDictionaryEnumerator ide = ht.GetEnumerator();
                while(ide.MoveNext())
                {
                    Console.WriteLine(ide.Key+" "+ide.Value);
                }
                Console.ReadLine();

  • 相关阅读:
    Go接口特性
    go递归函数
    K8S部署Redis Cluster集群(三主三从模式) 部署笔记
    Jenkins密码忘记重置方法
    inode满了处理
    Linux 系统日常巡检脚本
    垃圾代码评析——关于《C程序设计伴侣》6.2(三)
    CRITICAL THINGKING笔记——ad hominem
    垃圾代码评析——关于《C程序设计伴侣》6.2(二)
    垃圾代码评析——关于《C程序设计伴侣》6.2(一)
  • 原文地址:https://www.cnblogs.com/fuze/p/5721310.html
Copyright © 2011-2022 走看看