C#部分基础知识整理(数组)

C#部分基础知识整理(数组)

数组是具有相同数据类型的一组数据的结合。数组中的每一个变量称为数组元素,数组能够容纳元素的数量称为数组的长度。
常见数组:整型数组,小数数组,字符数组,字符串数组
1.一维数组
int[] arr;(整形数组) string[] arr;(字符串数组)
初始化一维数组
在这里插入图片描述
int[] arr = new int[3]{1,2};在C#中是不可行的,而在C++中可行。
程序示例:

namespace DemoPractice5
{
    class Program
    {
        static void Main(string[] args)
        {
            //12个月每个月有几天
            int[] arr = new int[12] { 31,28,31,30,31,30,31,31,30,31,30,31};
            for (int i = 0; i < 12;i++ )
            {
                Console.WriteLine((i+1)+"月有"+arr[i]+"天");
            }
            Console.ReadLine();
        }
    }
}

2.二维数组
语法:比如:int[,] arr;或者string[] [] arr;
二维数组设置大小:第一种情况 int[,] a = new int[2,4];指的是二维数组两行四列,其中第一行第一列的位置是(0,0)
在这里插入图片描述
第二种情况 int[][] a = new int[2][]; a[0] = new int[2]; a[1] = new int[3];
这属于不规则数组
在这里插入图片描述
初始化二维数组:
在这里插入图片描述
二维数组的使用:

namespace DemoPractice5
{
    class Program
    {
        static void Main(string[] args)
        {
            int[,] arr = { {1,2,3}, {4,5,6}, {7,8,9}};
            Console.WriteLine("----------原始数组----------");
            for (int i = 0; i < 3;i++ )
            {
                for (int j = 0; j < 3; j++)
                {
                    Console.Write(arr[i,j]+"  ");
                }
                Console.WriteLine();
            }
            int temp;
            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < i; j++)
                {
                    temp =arr[i,j];
                    arr[i,j]=arr[j,i];
                    arr[j,i] = temp;
                }
            }
            Console.WriteLine("----------调换之后的数组----------");
            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    Console.Write(arr[i, j] + "  ");
                }
                Console.WriteLine();
            }
            Console.ReadLine();
        }
    }
}

3.数组的基本操作
(1)一维数组的输入与输出
程序示例:
输入输出100以内的整数

namespace DemoPractice5
{
    class Program
    {
        static void Main(string[] args)
        {
           //一维数组的输入
            int[] arr = new int[100];
            for (int i = 0; i < 100; i++)
            {
                arr[i] = i + 1;
            }
            //一维数组的输出
            for (int i = 0; i < arr.Length; i++)
            {
                Console.WriteLine(arr[i]);
            }
            //用while语句来实现一维数组的输出
            int index = 0;
            while (index < arr.Length)
            {
                Console.WriteLine(arr[index]);
                index++;
            }
                Console.ReadLine();
        }
    }
}

(2)二维数组的输入与输出
程序示例:
输入学生序号及语数外成绩,输出各科成绩及平均成绩和总成绩

namespace DemoPractice5
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("请输入本班同学的学生总数:");
            int count = Convert.ToInt32(Console.ReadLine());
            int[,]achievement=new int[count,4];
            for (int i = 0; i < count; i++)
            {
                Console.Write("请输入第{0}个学生的编号:",i+1);
                achievement[i, 0] = Convert.ToInt32(Console.ReadLine());
                Console.Write("请输入语文成绩:");
                achievement[i, 1] = Convert.ToInt32(Console.ReadLine());
                Console.Write("请输入数学成绩:");
                achievement[i, 2] = Convert.ToInt32(Console.ReadLine());
                Console.Write("请输入英语成绩:");
                achievement[i, 3] = Convert.ToInt32(Console.ReadLine());
            }
            Console.WriteLine("学生成绩如下:");
            Console.WriteLine("------------------------------------------");
            Console.WriteLine("学生编号\t语文成绩\t数学成绩\t英语成绩\t平均成绩\t总成绩");
            for (int i = 0; i < achievement.GetLength(0); i++)
            {
                double sum = 0, ave = 0;
                for (int j = 0; j < achievement.GetLength(1);j++ )
                {
                    Console.Write(achievement[i, j] + "\t\t");
                    if (j > 0)
                    {
                        sum += achievement[i, j];
                    }
                }
                ave=sum/3;
                Console.Write(string.Format("{0:F2}",ave)+"\t\t"+sum+"\n");
            }
            Console.ReadLine();
        }
    }
}

(4)使用foreach语句遍历数组

namespace DemoPractice5
{
    class Program
    {
        static void Main(string[] args)
        {
           string[] strNames={"进货管理","商品管理","库存管理","系统设置","常用工具"};
           foreach (string str in strNames)//(【类型】 【迭代变量名】 in 【集合】)
           {
               Console.WriteLine(str);
           }
            Console.ReadLine();
        }
    }
}

(4)对数组进行排序

namespace DemoPractice5
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] arr = { 35,86,67,5,34};
            Array.Sort(arr);//对数组arr进行从小到大排序
            Array.Reverse(arr);//对数组arr反转
            foreach (int i in arr)
            { 
            Console.WriteLine(i);
            }
            Console.ReadLine();
        }
    }
}

4.数组排序算法
冒泡排序算法

namespace DemoPractice5
{
    class Program
    {
        static void Main(string[] args)
        {
            //冒泡排序法
            int[] arr = { 63,4,24,1,3,15};
            Console.WriteLine("初始数组:");
            for (int i = 0; i < arr.Length; i++)
            {
                Console.Write(arr[i] + "  ");
            }
            int temp;
            for (int i = 0; i < arr.Length - 1; i++)//外循环,进行几轮排序
            {
                for (int j = i + 1; j < arr.Length; j++)//内循环,内部排序
                {
                    if (arr[i] > arr[j])
                    {
                        temp = arr[i];
                        arr[i] = arr[j];
                        arr[j] = temp;
                    }
                }
            }
            Console.Write("排序后的数组:");
            for (int i = 0; i < arr.Length; i++)
            {
                Console.Write(arr[i] + " ");
            }

                Console.ReadLine();
        }
    }
}

选择排序算法

            //选择排序法
            int[] arr = { 63,4,24,1,3,15};
            Console.WriteLine("初始数组:");
            for (int i = 0; i < arr.Length; i++)
            {
                Console.Write(arr[i] + "  ");
            }
            int min;
            for (int i = 0; i < arr.Length - 1; i++)
            {
                min = i;
                for (int j = i + 1; j < arr.Length; j++)
                {
                    if (arr[j] < arr[min])
                    {
                        min = j;
                    }
                }
                int temp = arr[min];
                arr[min] = arr[i];
                arr[i] = temp;
            }
                Console.Write("排序后的数组:");
            for (int i = 0; i < arr.Length; i++)
            {
                Console.Write(arr[i] + " ");
            }

                Console.ReadLine();
        }
    }
}
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值