zoukankan      html  css  js  c++  java
  • 20160423 二维数组,锯齿数组和集合

    2016-04-23  20:46:26

     

    一.二维数组:

     

    一维数组----豆角

    二维数组----表格

     

    1)定义:

    一维数组:

    数据类型[] 数组变量名 = new 数据类型[数组长度];

    数据类型[] 数组变量名 = new 数据类型[数组长度]{1,2,3....};

     

    2)二维数组:

    数据类型[,] 数组变量名 = new 数据类型[行数,列数];

    int[,] a = new int[3,4];

     

    赋值:

        a[行下标,列下标] = 值       下标都是从0开始的

    取值:

        a[行下标,列下标]

     

    ☆.题目:一个班6个人,从键盘输入每个学号语文,数学,外语成绩(不需输入学号)。输出:学生成绩表(包括每个人的总分),每科的平均分。

    附加1:试着,把不及格的用红字显示。

    附加2:试着按照总分排序,显示名次出来。

    int [,]a=new int [6,5];
            for (int i = 0; i < 6;i++ )
            {
                Console.WriteLine("输入第{0}位同学的语文成绩:",i+1);
                int 语文成绩 = Convert.ToInt32(Console .ReadLine ());
                Console.WriteLine("输入第{0}位同学的数学成绩:", i + 1);
                int 数学成绩 = Convert.ToInt32(Console.ReadLine());
                Console.WriteLine("输入第{0}位同学的英语成绩:", i + 1);
                int 英语成绩 = Convert.ToInt32(Console.ReadLine());
    
                a[i, 0] = 语文成绩;
                    a[i,1]=数学成绩 ;
                    a[i, 2] = 英语成绩;
                    a[i,3] = 语文成绩 + 数学成绩 + 英语成绩;
    
            }
            for (int i = 0; i < 6;i++ )
            {
                for (int j = i; j < 5;j++ )
                { 
                if (a[i,3]>a[j+1,3])
                {
                    int v = a[i, 3];
                    a[i, 3] = a[j + 1, 3];
                    a[j + 1, 3] = v;
    
                    int m = a[i, 0];
                    a[i, 0] = a[j + 1, 0];
                    a[j + 1, 0] = m;
    
                    int n = a[i, 1];
                    a[i, 1] = a[j + 1, 1];
                    a[j + 1, 1] = n;
    
                    int b= a[i, 2];
                    a[i, 2] = a[j + 1, 2];
                    a[j + 1, 2] = b;
    
                   
                }
                
                }
            }
            int sum语文 = 0, sum数学 = 0, sum英语 = 0, avg语文, avg数学, avg英语;
    
    
            Console.Write("语文	数学	英语	总分	排序");
            Console.WriteLine();
            for (int i = 0; i < 6;i++ )
            {
                Console.WriteLine("{0}	{1}	{2}	{3}	{4}", a[i, 0], a[i, 1], a[i, 2], a[i, 3],i+1);
                sum语文 = sum语文 + a[i, 0];
                sum数学 = sum数学 + a[i, 1];
                sum英语 = sum英语 + a[i, 2];
            }
            avg语文 = sum语文 / 6;
            avg数学 = sum数学 / 6;
            avg英语 = sum英语 / 6;
            Console.WriteLine("平均分:语文{0}	数学{1}	英语{2}",avg语文 ,avg数学 ,avg英语 );

    二.锯齿数据,数组的数组。

    定义:

    第一步:定义大数组

    数据类型[][] a = new 数据类型[行数][];

    第二步:定义小数组

    数据类型[] a1 = new 数据类型[列数];

    数据类型[] a2 = new 数据类型[列数];

    ......

    第三步:把小数组放到大数组中

    a[0] = a1;

    a[1] = a2;

    ....

    代码:

         int[][] a = new int[3][];
                int[] a0 = new int[] { 1, 2, 3, 4, 5 };
                int[] a1 = new int[] { 6, 7, 8 };
                int[] a2 = new int[] { 9, 10 };
    
                a[0] = a0;
                a[1] = a1;
                a[2] = a2;
    
                //显示
    
                for (int i = 0; i < a.Length; i++)//a.length=3
                {
                    for (int j = 0; j < a[i].Length; j++)
                    {
                        Console.Write(a[i][j] + "	");
                    }
                    Console.WriteLine();
                }

    ★ 拓展

     

    int[,] a = new int [3][4];  //错

    int[][] a = new int[3,4];   //错

    int[][] a = new int[3][4];  //错

    int[,] c = new int[3,4]; //对

     

    c.Length== 12;

    三.集合

    1、ArrayList  链表,没有长度限制,可以随时添加或删除元素

    需要在前面加上:using System.Collections;

     

    定义:

    ArrayList a = new ArrayList();

    操作:

    a.Add(数据):添加

    a.Insert(索引号,数据):插入

    a.RemoveAt(索引号):删除

    a.Count       集合中元素的个数

     

    取值:

    a[下标]

    取出来的值需要进行强制转换。

     代码举例

        ArrayList a = new ArrayList();
                a.Add(110);
                a.Add(120);
                a.Add(500);
                a.Add("汤圆");
                a.Add(true );
                a.Insert(1,"chihuo");//插入第2条为“chihuo”
                a.RemoveAt(3);//删除第四行 500
    
    
                for (int i = 0; i < a.Count;i++ )
                {
                    Console.WriteLine(a[i]);
                }

    结果显示

    2、List<类型> 链表,,没有长度限制,可以随时向时添加或删除元素。只能放指定类型的数据,取出来也不用强制转换。

    定义

    List<类型> 变量名 = new List<类型>();

    List<int> a = new List<int>();

    操作:

    a.Add(数据):添加

    a.Insert(索引号,数据):插入

    a.RemoveAt(索引号):删除

    a.Count     集合中元素的个数

     

    a.Sort();   排序

    a.Reverse();反转

     

    取值

    a[索引号]

    示例:

           List <int > a=new List<int> ();
            a.Add(10);
            a.Add(100);
            a.Add(1000);
            a.Add(500);
    
            a.Insert(2, 123);
            a.RemoveAt(3);
    
            for (int i = 0; i < a.Count;i++ )
            {
                Console.WriteLine(a[i]);
            }
            

    结果显示

    集合中的集合:

      List<List<int>> a = new List<List<int>>();
                
                List<int> a1 = new List<int>();
                a1.Add(10);
                a1.Add(12);
                a1.Add(15);
    
                List<int> a2 = new List<int>();
                a2.Add(20);
                a2.Add(23);
                a2.Add(28);
    
                a.Add(a1);
                a.Add(a2);

    3.Dictionary<key,value>字典或哈希表

    定义

    Dictionary<int,string> a = new Dictionary<int,string>();

     

    操作:

    a.Add(键值,数据);

    a.Remove(键值);

    a.Count;

     

    取值:

    a[键值]

    代码示例

    4、栈,队列  

    栈:先进后出,不能随机取其中任意一个值。

    Stack<数据类型> a = new Stack<数据类型>();

    a.Push(值);

    数据类型 变量名 = a.Pop();

     

    队例:先进先出,不能随机取其中任意一个值。

    Queue<int> a = new Queue<int>();

    a.Enqueue(值);

    数据类型 变量 = a.Dequeue();

  • 相关阅读:
    完全背包详解
    0-1背包详解
    优先队列 + 模拟
    循环节 + 矩阵快速幂
    并查集 + 路径压缩(经典) UVALive 3027 Corporative Network
    dp
    动态规划分类(完整版)
    (二)Spring框架之JDBC的基本使用(p6spy插件的使用)
    (一)Spring框架基础
    (十六)客户端验证与struts2中的服务器端验证
  • 原文地址:https://www.cnblogs.com/pangchunlei/p/5425521.html
Copyright © 2011-2022 走看看