什么是数组?
内存中连续存储同一类数据的一块空间。
分类:一维,二维,多维。
数组---连续性,同类性,不能随便插入、增加、删除数据。
★一维数组:
类似于:豆角(一维)。(□□□□□□□□)每个豆荚(□)里面只放一个豆子。
1、定义:
数据类型[] 数组名 = new 数据类型[数组长度];
int[] a = new int[10];
string[] b = new string[20];
2、赋值:
(1)int[] a = new int[10]{21,22,23,24,25,26,27,28,29,30};
(2)数组名[下标]=值
a[0] = 10;
a[1] = 20;
a[2] = 30;
3、取值:
Console.Write(a[2]);
a - 整个数组 (□□□□□□□□)
i - 下标 □ 下标是从0开始算的。
a[i] - i下标这个空间中的值。 □中的值。
★遍历数组的方法:
for循环遍历数组:
int[] a = new int[5];
for(int i = 0;i<a.length;i++)
{
Console.WriteLine(a[i]);
}
foreach遍历数组:
int[] a = new int[5];
foreach(int i in a)
{
Console.WriteLine(i);
}
案例:
1.输出数组a(10,20,30,40,50,60,70,80,90)。
public static void Main(string[] args)
{
int[] a = new int[10]{10,20,30,40,50,60,70,80,90,100};
Console.WriteLine("下面是数组中的值");
for (int i = 0; i < a.Length; i++)
{
Console.WriteLine(a[i]);
}
}
或者
public static void Main(string[] args) { int[] a = new int[10]{10,20,30,40,50,60,70,80,90,100}; for (int i = 0; i < a.Length; i++) { a[i] = (i + 1) * 10; } Console.WriteLine("下面是数组中的值"); for (int i = 0; i < a.Length; i++) { Console.WriteLine(a[i]); } }
2.20个评委给5位选手投票,输出每位选手所得票数。
public static void Main(string[] args) { //星光大道投票 int[] xs = new int[5]; //20人投票 for (int i = 0; i < 20; i++) { Console.Write("您投几号?(1-5号)\t"); int hao = Convert.ToInt32(Console.ReadLine()); xs[hao - 1] ++; } //显示 for (int i = 0; i < 5; i++) { Console.WriteLine("第{0}个选手,得票数是{1}票",i+1,xs[i]); } }
3.教练给球员打分:显示每分球员的得分,显示最高分及球员号,最低分及球员号,显示平均得分。
public static void Main(string[] args) { //教练给球员打分 int[] qy = new int[10]; //打分 for (int i = 0; i < 10; i++) { Console.Write("请给第{0}个球员打分:", i+1); qy[i] = Convert.ToInt32(Console.ReadLine()); } //显示 for (int i = 0; i < 10; i++) { Console.WriteLine("第{0}号球员得分为:{1}", i + 1, qy[i]); } //找出最高分与最低分 int max=0, min=1000; int max_no = 0, min_no = 0; for (int i = 0; i < 10; i++) { if (qy[i] > max) { max = qy[i]; max_no = i; } } for (int i = 0; i < 10; i++) { if (qy[i] < min) { min = qy[i]; min_no = i; } } Console.WriteLine("最高分是:{0}({2}号球员),最低分是:{1}({3}号球员)",max,min,max_no+1,min_no+1); //平均分 int sum = 0; for (int i = 0; i < 10; i++) { sum = sum + qy[i]; } double avg = 1.0*sum / 10; Console.WriteLine("本队球员平均得分为:{0}分",avg); }
★static和public static有啥区别
首先呢,他们两个并不冲突。如果只用static的话,就好像做好了一个煎饼,但这个煎饼呢只有一部分人才可以吃。如果只用public的话,就好像在大街上摆一个煎饼摊,谁都可以去做煎饼吃,如果两者都加上的话,就好像在大街上放了个做好的煎饼,谁都可以直接吃。