数组(数据类型):数组能存放多个同类型数据,数组长度不可改变。

Ⅰ、声明与赋值

  ①数组声明:数据类型[ ] 变量名;→→例:int[ ]  array;//此时只是一个声明这是个数组对象。

  ②赋值:给声明了的数组赋值→→变量名=new  数据类型[长度 ];→→例:array=new  int[5];//此时给数组赋值了个为5的长度,此时这里的[5]也称作下标或索引。

int [ ]str=new int[3]{"2","4","5"};第一种

int [ ]str={"3","5","9"};第二种,为最简便的创立一个数组。

int [] nums=new int[6];//这样只是创建了一个长度为6的数组,没有赋值

Ⅱ、数组初始化

①数字类型,初始化时所有值=0; ②bool初始化的值=false;  ③char 初始化值=\0;   ④string初始化值=null;

int [] nums=new int[6];
//创建了数组,但没赋值,此时数组内的所有元素都为0;

//创建长度为3的数组
int [] numbers=new int [3];
//给数组下标为0,的数组项赋值为6
numbers[0]=6;
//为numbers重新建立一个长度为2数组,相当于前面的数组就不用了
numbers=new int [2];
//新建立的数组为初始化,没有赋值,所以此时都为0
Console.Write(numbers[0]);//此时numbers[0]=0;

Ⅲ、数组项读取与修改

①读取:变量名[下标]

②修改(也叫赋值):变量名[ ]=值;→→array[1]=9;

Ⅳ、读取数据长度

变量名 . length;        

注意: length为数组对象的一个属性。

    要获取数组最后一项值就是array[array.length-1];

//创建数组
int  [] array={"4","2","7"};
//i为array下标,array.length为数组长度
for  (int i=0;i<array.length;i++)
{
     Console,Write( array );
   Console.WriteLine(array[array.length-1]);
}

数组定长性

一个数组创建后,他的长度固定不可变,数据适用于数据数量固定场景。

int [] array=new int [3];
array=new int [4];
//此时会觉得这不是长度改变了吗?其实不是。
//只是先定义了个长度为3的数组,再重新为array创建了一个长度为4的数组,所以之前的就废弃了,长度并没有发生改变

数组遍历

给数组重新赋值或求和或求乘积等都会运用遍历。

int [] array={"2","4","5"};
   for(int i=0;i<array.length;i++)
{
      Console.Write(array);
//输出一个数组项后输出空格隔开
 Console.Write("   ");
     
}

数组排序

①选择排序:

把第一位数字拿出来依次和后面每一位数字比较,比他大则不换位置,比他小则换位置,,不管换了几次都用第一位来比较,具有不稳定性

1-1. 使用任意的排序算法对数组进行排序,排序后,重新输出数组内容

var array=[6,8,5,2,2];
for (var i=0;i<array.length-1;i++){
			for(var j=i+1;j<array.length;j++){
				if(array[i]>array[j]){
					var temp=array[i];
					array[i]=array[j];
					array[j]=temp;
				}
			}
		}
		Console.Write(array);

②冒泡排序

相邻两个数进行比较,谁小换前面,谁大换后面。冒泡排序具有稳定性。

1-1. 使用任意的排序算法对数组进行排序,排序后,重新输出数组内容

var array=[6,8,5,2,2];
//i为循环次数
for (var i=0;i<array.length-1;i++){
//j为array的下标
			for(var j=0;j<array.length-1-i ;j++){
				if(array[j]>array[j+1]){
					var temp=array[j+1];
					array[j+1]=array[j];
					array[j]=temp;
				}
			}
		}
		Console.Write(array);

 

数组与集合

数组:能定长,用于保存固定数量的数据;占用内存少,遍历快。

集合:不定长,可改变长度。

集合类型:List 类型最常见。

①创建集合

定义:List<数据类型>变量名;

赋值:变量名=new  List <数据类型>();           例:List<int> nums=new  List<int>{3,6,8};

初始化:变量名=new List<数据类型>{元素1,元素2,元素3......元素n};

②操作:

添加元素:变量名 . add(要添加的数据);

插入元素:变量名 . Insert(索引,要插入的数据);

删除元素:变量名 . RemoveAt(索引); //根据索引删除

                  变量名 . Remove(数据);//根据数据删除

修改元素:变量名[索引]=值;

获取元素数量:变量名 . Count

【材料题】

1. 建立一个int类型的数组,变量名为nums,并使用初始化器给它的每一项赋值(随意赋一些值即可),然后完成下面的练习


Console.Write("请输入一个数组长度:");
            int len = int.Parse(Console.ReadLine());
            int[] nums=new int[len];
            for (int i = 0; i < len; i++)
            {
                Console.Write("数组第" + (i + 1) + "组数据:");
                nums[i] = int.Parse(Console.ReadLine());
            }
            for (int i = 0; i < nums.Length;i++ )
            {
                if (i < nums.Length - 1)
                {
                    Console.Write(",");
                  
                }
                Console.Write(  nums[i]);
            }

1-1. 让用户输入一个下标和一个新的数字,修改数组对应下标的数字,若下标超出范围,要给出错误提示,并让用户重新输入


 

Console.Write("请输入一个下标");
            int len = int.Parse(Console.ReadLine());
            Console.Write("请输入一个新数字");
            int num = int.Parse(Console.ReadLine());
            int[] str = {2,3,6,3,1 };
            if (len <= str.Length - 1)
            {
               
str[len]=num;
                Console.Write("正确");
            }
            else 
            {
                Console.Write("超出范围");
            }

           

          

1-2. 让用户输入一个要查找的数字,判断该数字在数组中是否存在

int[] nums = {2,5,7,2,4
};
            Console.Write("请输入一个数字:");
            int ter = int.Parse(Console.ReadLine());
            bool IsNuM = false;
            for (int i = 0; i
< nums.Length;i++ )
            {
 
                if (nums[i] == ter)
                {
                   
IsNuM = true;
                    Console.WriteLine("存在过");
                    break;
                }
               
            }
            if(IsNuM)
            {
                Console.Write("不存在");
            }

1-5. 输出数组中所有的质数

int[]
nums = { 2, 4, 5, 7 };
         // 遍历数组获得每一个元素
         for (int i = 0;
i < nums.length; i++) {
              //默认元素是质数
              boolean
iszhishu = true;
              //质数整除的范围2~(n-1)
              for (int j
= 2; j < nums[i]; j++) {
                   //判断是否合数,是合数iszhishu就为false,终止当前循环
                   if
(nums[i] % j == 0) {
                       iszhishu
= false;
                       break;
                   }
              }
              //判断是否质数
              if
(iszhishu) {
                  Console.Write(nums[i]
+ "是质数");
              }