En el blog anterior, compartí las enumeraciones y estructuras en C #, esta vez compartiré las matrices. Aquí nos enfocamos principalmente en la maximización de la matriz y la clasificación de la matriz.
Uno, mapa mental
¿Qué es una matriz?
Un conjunto de números del mismo tipo de datos.
¿Cuáles son los beneficios de las matrices?
Declare el mismo tipo de números a la vez
¿Cómo declarar las cuatro formas de matriz?
//第一种方式
int[] num1 = new int[10]; //长度为10,下标为0-9,int类型
//第二种方式
int[] num2 = new int[] { 1,2,3,4,5}; //此数组就存5个值
//第三种方式
int[] num3 = new int[3] { 1, 2, 3 }; //个数和声明数必须一致。此数组就存3个值,值都清楚
//第四种方式
int[] num4 = { 1, 2, 3, 4, 5 }; //简写法
¿Cómo asignar un valor a una matriz?
int[] num1 = new int[10]; //长度为10,下标为0-9,int类型
num1[8] = 20; //给8这个地方赋个值
Console.WriteLine(num1[8]);
Console.ReadKey();
Por ejemplo, si construyes un edificio de 10 pisos, si hay una casa abierta, buscará esta habitación con el sexto piso número 100.
2. Ejercicios de combate reales
1. Después de una prueba de chino, el maestro le pide al líder de la clase que cuente los puntajes de cada estudiante y calcule el puntaje promedio de toda la clase (un total de 5 estudiantes en la clase) y luego muestre todos los resultados.
Console.WriteLine("请输入班级人数"); //用户输入人数
int number = 0; //平均成绩
int sum = 0; //总成绩
if (int.TryParse(Console.ReadLine(), out number)) //如果用户输入的人数正确
{
int[] score = new int[number]; //声明一个数组用来存放成绩
for (int i = 0; i < score.Length; i+1)
{
Console.WriteLine("请输入第{0}个人的成绩", i++); //用户输入成绩
score[i] = int.Parse(Console.ReadLine()); //把用户输入的成绩转换为int类型并存到数组中
sum += score[i]; //对分数进行求和
}
Console.WriteLine("总成绩为{0},平均成绩为{1}",sum,sum/number);
}
else //如果用户输入的人数错误
{
Console.WriteLine("输入有误");
}
Console.ReadKey();
2. Encuentra el máximo, el mínimo, el promedio y la suma de una matriz.
int[] nums = { 1, 2, 3, 0, 9 };
int max = int.MinValue; //求最大值
int min = int.MaxValue; //求最小值
int sum = 0; //总和初始化为0
for (int i = 0; i < nums.Length ; i++)
{
if(nums[i]> max) //求最大值
{
max = nums[i];
}
if(nums[i]< min) //求最小值
{
min = nums[i];
}
sum += nums[i]; //求和
}
Console.WriteLine("最大值为{0},最小值为{1},总和为{2},平均值为{3}",max,min,sum,sum/nums.Length );
Console.ReadKey();
3. Clasificación de burbujas
int[] nums = new int[] { 98, 54, 54, 322, 43, 23 }; //一个数组nums,并赋值(要被排序的数组)
int temp = 0;
for (int i = 0; i < nums.Length - 1; i++) //循环的轮数,需要6-1=5轮
{
for (int j = 0; j < nums.Length - 1 - i; j++) //比较的次数(随着轮数的增加,比较次数减少)
{
if (nums[j] > nums[j + 1]) //相邻两数进行比较,如果前一位>后一位
{
temp = nums[j]; //交换位置
nums[j] = nums[j + 1];
nums[j + 1] = temp;
}
}
}
for (int i = 0; i < nums.Length ; i++) //循环输出排序之后的数组元素
{
Console.Write(nums[i]+"\t"); //在控制台输出结果,并排序(\t)
}
Console.ReadKey();
4. Orden de matriz
Método uno, salida directa
int[] nums = new int[] { 1, 2, 4, 3, -1 }; //定义一个数组,并赋值
Array.Sort(nums); //Array类,对数组元素进行排序
for (int i = 0; i < nums.Length ; i++) //for循环输出数组元素
{
Console.Write(nums[i] + "\t"); //在控制台输出内容,注:\t是水平制表符
}
Console.ReadKey();
Método dos, salida inversa
int[] nums = new int[] { 1, 2, 4, 3, -1 }; //定义一个数组,并赋值
Array.Sort(nums); //Array类,对数组元素进行排序
//Array.Reverse(nums); //反转,颠倒原来数组,如,颠倒后:-1,3,4,2,1
for (int i = nums.Length - 1; i >= 0; i--) //倒着输出结果
{
Console.Write(nums[i] + "\t");
}
Console.ReadKey();
5. Usar llamadas al método de matriz: calcular el máximo, mínimo, promedio y suma de todos los elementos de una matriz
class Program
{
static void Main(string[] args)
{
Program.ArraySort(); //调用ArraySort这个方法
Console.ReadKey();
}
public static void ArraySort() //写了一个ArraySort方法,对数组进行排序
{
int[] nums = new int[] { 2, 3, 43, 23, 243, 3 }; //定义一个数组,并赋初值
int max = int.MinValue; //最大值
int min = int.MaxValue; //最小值
int sum = 0; //给求和赋初值为0
for (int i = 0; i < nums.Length; i++) //for循环,对数组进行遍历
{
if (nums[i] > max) //求最大值
{
max = nums[i];
}
if (nums[i] < min) //求最小值
{
min = nums[i];
}
sum += nums[i]; //求和
}
Console.WriteLine("最大值为:{0},最小值为:{1}", max, min); //在控制台输出最大值、最小值
Console.WriteLine("和为:{0},平均值为:{1}", sum, sum / nums.Length); //在控制台输出和、平均数
}
}
6. Los nombres de las personas en la matriz (Bella, Edward, Jacob, Alice, Carlisle) se dividen en: Por ejemplo: "Bella | Edward ..."
string[] names = new string[] { "贝拉", "爱德华", "雅各布", "爱丽丝", "卡莱尔", }; //定义一个字符串变量并赋值
string result = ""; //定义一个字符串result用来接收加|之后的元素
for(int i = 0; i < names.Length-1; i++) //for循环遍历数组元素
{
result += names[i] + "|"; //result=names某个元素+|
}
Console.WriteLine(result+names[names.Length -1]); //在控制台输出结果,最后一个元素不加“|”
Console.ReadKey();
7. Cada elemento de una matriz de números enteros se procesa de la siguiente manera: si el elemento es positivo, el valor del elemento en esta posición es +1; si el elemento es negativo, el valor del elemento en esta posición es -1; si el elemento es 0, Lo mismo
for (int i = 0; i < nums.Length; i++)
{
if(nums[i]>0) //如果数>0
{
nums[i]++;
}
if (nums[i] < 0) //如果数<0
{
nums[i]--;
}
}
for (int i = 0; i < nums.Length; i++) //循环输出数值
{
Console.Write(nums[i]+"\t");
}
Console.ReadKey();
8.forr: revertir, revertir la matriz original
Invierta el orden de los elementos de una matriz de cadenas: {"Yo", "Sí", "Buena gente"} {"Buena gente", "Sí", "Yo"}. Intercambie el i-ésimo y el largo-i-1 °
方法一:Array.Reverse
string[] text = new string[] {"我", "是", "好人"}; //定义一个数组text并赋值
Array.Reverse(text); //反转
for (int i = 0; i < str.Length; i++) //遍历数组
{
Console.Write(str[i]+"\t"); //在控制台输出结果,注:\t是水平制表符
}
Console.ReadKey();
方法二:forr反转
Array.Sort(text);
for (int i = text.Length - 1; i >= 0; i--)
{
Console.Write(text[i] + "\t");
}
Console.ReadKey();
9. Valor de matriz y asignación
int[] nums = new int[5]; //声明一个数组
for (int i = 0; i < 5; i++) //赋值
{
nums[i] = 10;
}
for(int i = 0; i < 5; i++) //取值
{
Console.WriteLine(nums[i]);
}
Console.ReadKey();
Tres, expandir
Enumeración: un conjunto de valores en un rango fijo
Estructura: declare varios números de diferentes tipos de datos a la vez
Matriz: declare varios números del mismo tipo de datos a la vez