十一、数组
(一)定义
数组:具有相同类型的若干变量按有序的形式组织起来的一种形式。这些按序排列的同类数据元素的集合称为数组。
定义一位数组:
int[] 变量名 = new int [n];
int[] myArray = new int[5] {1, 3, 5, 7, 9};
取值:int a = myArray[0];
定义二维数组:
int[,] 变量名 = new int [,];
int[,] myArray = new int[2,2] {{1, 3}, {5, 7}};
定义多维数组:
int[,,] 变量名 = new int [,,];
int[,,] myArray = new int[1,2,2] {{{1, 3},{ 5, 7}}};
(二)例题
1、从控制台输入10个人的年龄放入数组,将十个人的年龄求总和
主要代码:
int[] age = new int[10]; int sum = 0; for (int i = 0; i < 10; i++) { Console.Write("请输入年龄:"); age[i] = int.Parse(Console.ReadLine()); sum += age[i]; } Console.WriteLine(sum); Console.ReadLine();
结果:
2、输入班级人数,根据人数确定输入多少个成绩,求平均分,最高分,最低分(使用冒泡排序)
主要代码:
Console.Write("请输入人数:"); int num = int.Parse(Console.ReadLine()); double[] grade = new double[num]; for (int i = 0; i < num; i++) { Console.Write("请输入第{0}个人的成绩:", i + 1); grade[i] = double.Parse(Console.ReadLine()); } double t = 0; for (int j = 0; j < num - 1; j++) { for (int i = 0; i < num - 1 - j; i++) { if (grade[i] < grade[i + 1]) { t = grade[i]; grade[i] = grade[i + 1]; grade[i + 1] = t; } } } for (int i = 0; i < num; i++) Console.WriteLine("第{0}名的成绩为:{1}。", i + 1, grade[i]); double sum = 0; for (int i = 0; i < num; i++) sum += grade[i]; double averge = sum / num; Console.WriteLine("平均分为:{0}", averge); Console.WriteLine("最高分为:{0},最低分为:{1}。", grade[0], grade[num - 1]); Console.ReadLine();
结果:
3、输入班级人数,根据人数创建数组,将每一个人的语文,数学,英语成绩放入,计算出每个人的平均成绩
主要代码:
Console.Write("请输入班级人数:"); int num = int.Parse(Console.ReadLine()); double[,] grade = new double[num, 3]; string[] classes = new string[3]; classes[0] = "语文成绩:"; classes[1] = "数学成绩:"; classes[2] = "英语成绩:"; for (int i = 0; i < num; i++) { for (int j = 0; j < 3; j++) { Console.Write("请输入{0}", classes[j]); grade[i, j] = double.Parse(Console.ReadLine()); } Console.WriteLine(); } for (int i = 0; i < num; i++) { double sum = 0; double averge = 0; for (int j = 0; j < 3; j++) { sum += grade[i, j]; } averge = sum / 3; Console.WriteLine("平均分为:" + averge + "分。"); } Console.ReadLine();
结果:
4、五个候选班长,20人投票。(输入1-5来表示支持哪个人)最后查看票数,看那个人胜出。
主要代码:
int[] a = new int[10]; for (int i = 0; i < 10; i++) { Console.Write("请投票:"); a[i] = int.Parse(Console.ReadLine()); } Console.WriteLine(); int[] b = new int[6] {0,0,0,0,0,0,}; for (int i = 0; i < 10; i++) { if (a[i] == 1) b[0] += 1; else if (a[i] == 2) b[1] += 1; else if (a[i] == 3) b[2] += 1; else if (a[i] == 4) b[3] += 1; else if (a[i] == 5) b[4] += 1; else b[5] += 1; } Console.WriteLine(); Console.WriteLine("1有{0}票,2有{1}票,3有{2}票,4有{3}票,5有{4}票,有{5}张废票。", b[0], b[1], b[2], b[3], b[4],b[5]); if (b[0] >= b[1]) { if(b[0]>=b[2]) { if (b[0] >= b[3]) { if (b[0] >= b[4]) Console.WriteLine("班长为1。"); } } } if (b[1] >= b[0]) { if (b[1] >= b[2]) { if (b[1] >= b[3]) { if (b[1] >= b[4]) Console.WriteLine("班长为2。"); } } } if (b[2] >= b[0]) { if (b[2] >= b[1]) { if (b[2] >= b[3]) { if (b[2] >= b[4]) Console.WriteLine("班长为3。"); } } } if (b[3] >= b[0]) { if (b[3] >= b[1]) { if (b[3] >= b[2]) { if (b[3] >= b[4]) Console.WriteLine("班长为4。"); } } } if (b[4] >= b[0]) { if (b[4] >= b[1]) { if (b[4] >= b[2]) { if (b[4] >= b[3]) Console.WriteLine("班长为5。"); } } } Console.ReadLine();
结果: