数组
文章目录
- 数组
- 1、概念
- 2、数组的声明
- 3、数组的使用
- 思考1 找出随机数中的最大值,最小值
- 思考2 数组值前后交换
- 思考3 输入成绩,比较出最大、最小值
- 思考4 生成一个5X5的花格子
- 二维数组
- 交错数组
1、概念
数组是存储一组相同类型数据的集合
数组分为一维、多维、交错数组
一般情况一维数组简称数组
2、数组的声明
//变量类型[] 数组名;
int[] arr;
//变量类型[] 数组名 = new 变量类型[数组长度];
int[] arr1 = new int[5]; //值为0
//变量类型[] 数组名 = new 变量类型[数组长度]{内容1,内容2...};
int[] arr1 = new int[5]{1,2,3,4,5};
//变量类型[] 数组名 = new 变量类型[]{内容1,内容2...};
int[] arr1 = new int[]{1,2,3,4};
//变量类型[] 数组名 = {内容1,内容2...};
int[] arr1 = {1,2,3,4};
3、数组的使用
int[] array = {1,2,3,4,5};
//1、数组长度 (.Length)
Console.WriteLine(array.Length);
//2、获取数组中的元素 (范围0~Length-1)
Console.WriteLine(array[1]);
//3、修改数组中的元素
array[0] = 55;
Console.WriteLine(array[0]);
//4、遍历数组
for( int i = 0; i < array.Length; i++){
Console.WriteLine(array[i]);
}
//5、增加数组的元素
int[] array2 = new int[6];
for( int i = 0; i < array.Length; i++){
array2[i] = array[i];
}
array = array2; //指向新的位置
array[5] = 10;
//6、删除数组中的元素
int[] array3 = new int[5];
for( int i = 0; i < array3.Length; i++){
array3[i] = array[i];
}
array = array3;
//7、查找数组中的元素 1 2 3 4 5
int a = 3
for( int i = 0; i < array.Length; i++){
if( a == array[i]){
Console.WriteLine("和a相等的元素再{0}索引位置",i);
break;
}
}
整块代码缩进整理 Ctrl + K + D
思考1 找出随机数中的最大值,最小值
找出随机数中的最大值,最小值,总和,平均值
//从0~100随机10个数
int[] array = new int[10];
Random rnd = new Random();
int max = array[0], min = 0, sum = 0, avg = 0;
for (int i = 0; i < array.Length; i++)
{
array[i] = rnd.Next(0, 101);
if (i == 0)
{
min = array[0];
}
Console.WriteLine(array[i]);
if (array[i] > max)
{
max = array[i];
}
if (array[i] < min)
{
min = array[i];
}
sum += array[i];
}
avg = sum / array.Length;
Console.WriteLine("数组中最大值{0},最小值{1},总和{2},平均值{3}", max, min, sum, avg);
思考2 数组值前后交换
//交换数组中的第一个和最后一个,第二个和倒数第二个,依次类推。
int[] array = new int[10];
int temp = 0;
Random rnd = new Random();
for (int i = 0; i < array.Length; i++)
{
array[i] = rnd.Next(0, 101);
Console.WriteLine(array[i]);
}
Console.WriteLine("******");
for (int i = 0; i < array.Length / 2; i++)
{
temp = array[i];
array[i] = array[array.Length - 1 - i];
array[array.Length - 1 - i] = temp;
}
for (int i = 0; i < array.Length; i++)
{
Console.WriteLine(array[i]);
}
思考3 输入成绩,比较出最大、最小值
try
{
int[] arr = new int[3];
int max = 0, min = 0, sum = 0, avg = 0;
for (int i = 0; i < arr.Length; i++)
{
Console.WriteLine("请输入第{0}位同学的成绩",i+1);
arr[i] = int.Parse(Console.ReadLine());
if (i == 0 )
{
min = arr[i];
}
else
{
if (arr[i] > max)
{
max = arr[i];
}
if (arr[i] < min)
{
min = arr[i];
}
}
sum += arr[i];
}
avg = sum / arr.Length;
Console.WriteLine("最高分{0},最低分{1},总分{2},平均分{3}", max, min, sum, avg);
}
catch
{
Console.WriteLine("输错了");
}
思考4 生成一个5X5的花格子
string[] strs = new string[25];
for (int i = 0; i < strs.Length; i++)
{
if ((i + 1) % 5 == 0)
{
if (i % 2 == 0)
{
Console.Write("■");
}
else
{
Console.Write("□");
}
Console.WriteLine("");
}
else
{
if (i % 2 == 0)
{
Console.Write("■");
}
else
{
Console.Write("□");
}
}
}
二维数组
概念
同一变量类型的行列数据组合
二维数组 是使用两个下标(索引)来确定元素数组
int[2,3] 两行,三列
声明
//变量类型[,] 二维数组变量名;
int[,] arr;
//变量类型[,] 二维数组变量名 = new 变量行[行,列];
int[,] arr = new int[3,3];
int[,] arr = new int[3,3]{{1,2.3},{1,2,3},{1,1,1}}
int[,] arr = new int[,]{{1,2.3},{1,2,3},{1,1,1}}
int[,] arr = {{1,2.3},{1,2,3},{1,1,1}}
使用
//1、二维数组的长度
行 arr.GetLength(0);
列 arr.GetLength(1);
//2、获取数组中的元素
arr[0,1]
//3、修改数组中的元素
arr[0,0] = 2
//4、遍历数组
for(int i = 0;i <arr.GetLength(0); i++ ){
for(int j = 0; j< arr.GetLength(1); j++)
Console.WriteLine(array[i,j]);
}
//5、增加数组的元素
int[,] arr1 =new int[2,3]
int[,] arr2 =new int[3,3]
for(int i = 0; i < arr2.GetLength(0); i++){
for(int j = 0; j < arr2.GetLength(1); i++){
arr2[i,j] = arr1[i,j]
}
}
arr1 = arr2;
//arr1添加元素
arr1[2,0] = 1;arr1[2,1] = 2;arr1[2,2] = 3;
//6、删除数组中的元素
//7、查找数组中的元素 1 2 3 4 5
交错数组
1、概念:可以存储同一类型的m行确定列的数据
数组的数组,每个维度的数量可以不同
注意:二维数组每行的列数相同,交错数组每行的列数可能不同
2、声明:
//变量类型[][] 交错数组名;
int[][] arr;
int[][] arr = new int[3][];
int[][] arr = new int[3][]{new int[]{1,2,3},new int[]{1,2}new int[]{3}}
int[][] arr = new int[][]{new int[]{1,2,3},new int[]{1,2}new int[]{3}};
int[][] arr = {new int[]{1,2,3},new int[]{1,2}new int[]{3}};
3、使用
1、数组的长度
//行
Console.WriteLine(array.GetLength(0));
//得到某一行的列数
Console.WriteLine(array[0].Length);
2、遍历
for(int i = 0;i <arr.GetLength(0); i++ ){
for(int j = 0; j< arr[i].Length; j++)
Console.Write(array[i][j] + " ");
}
Console.WriteLine();
}