C#基础Ⅵ❷-数组

简介: C#基础Ⅵ❷-数组

数组

概念

一组数据类型相同的数

声明数组

//第一种方式
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 }; //简写法

如何赋值

int[] num1=new int[10];
num1[8]=20;
console.WriteLine(num1[8]);
Console.WriteLine(

实例

一次语文测试,老师让班长统计每位学生的成绩并计算全部的平均成绩,然后把成绩显示出来

 Console.WriteLine("请输入班级人数");
  int avg = 0;
  int sum = 0;
  if (int.TryParse(Console.ReadLine(),out avg ))
  {
      int[] score = new int[avg];
      for (int i = 0; i <score.Length  ; i++)
      {
          Console.WriteLine("请输入第{0}个人的成绩",i++);
          score[i] = int.Parse(Console.ReadLine());
          sum += score[i];
      }
      Console.WriteLine("总成绩为{0},平均成绩为{1}",sum ,sum/avg);
  }
  else
  {
      Console.WriteLine("输入有误");
  }
  Console.ReadKey();
}

求数组最大值、最小值、平均值、总和

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();

冒泡排序

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();

数组排序正向输出

int[] nums = new int[] { 1, 2, 3, 4, -1 };
Array.Sort(nums);
for (int i = 0; i < nums.Length ; i++)
{
    Console.WriteLine(nums[i] + "\t");
}
Console.ReadKey ();

数组排序逆向输出

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();

利用数组方法调用:计算一个数组所有元素的最大值、最小值、平均值、总和

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);   //在控制台输出和、平均数
    }
}

数组里面的人名分割成阿花|阿杰|阿健

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();

将一个整数数组的每一个元素进行处理:如果元素是正数则将这个位置的元素的值+1;如果元素是负数则将这个位置的元素的值-1;如果元素是0,则不变

int[] nums = new int[] { -2, 3, 43, 23, 243, 3,0};
for (int i = 0; i < nums.Length; i++)
{
    if (nums[i]>0)
    {
        nums[i]++;
    }
    if(nums[i]<0)
    {
        nums[i]--;
    }
}
for (int i = 0; i < nums.Length; i++)
{
    Console.WriteLine(nums[i]+"\t");
}
Console.ReadKey();

forr:反转,颠倒原来数组

将一个字符串数组的元素的顺序进行反转:{”我“,”是“,“好人”}{”好人“,”是“,”我“}。第i个和第length-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();
相关文章
|
7月前
|
C#
C#学习相关系列之数组---常用方法使用(二)
C#学习相关系列之数组---常用方法使用(二)
|
7月前
|
存储 C#
C#学习系列相关之数组(一)---数组的定义与使用
C#学习系列相关之数组(一)---数组的定义与使用
|
7月前
|
存储 人工智能 C#
【Unity 3D】C#中数组、集合、栈、队列、哈希表、字典的讲解(附测试代码)
【Unity 3D】C#中数组、集合、栈、队列、哈希表、字典的讲解(附测试代码)
97 0
|
开发框架 .NET C#
c#数组补充
c#数组的几个简单的补充
45 0
|
3月前
|
存储 C# 索引
C# 一分钟浅谈:数组与集合类的基本操作
【9月更文挑战第1天】本文详细介绍了C#中数组和集合类的基本操作,包括创建、访问、遍历及常见问题的解决方法。数组适用于固定长度的数据存储,而集合类如`List<T>`则提供了动态扩展的能力。文章通过示例代码展示了如何处理索引越界、数组长度不可变及集合容量不足等问题,并提供了解决方案。掌握这些基础知识可使程序更加高效和清晰。
90 2
|
6月前
|
存储 开发框架 .NET
C#中的数组探索
C#中的数组探索
|
7月前
|
C#
C# 字节数组与INT16,float,double之间相互转换,字符数组与字符串相互转换,
C# 字节数组与INT16,float,double之间相互转换,字符数组与字符串相互转换,
243 2
C#基础⑥.2——数组(冒泡排序、求最值、数组排序、forr反转)
一次语文测试后,老师让班长统计每一个学生的成绩并计算全班(全班共5人)的平均成绩,然后把所有成绩显示出来。
|
7月前
|
存储 C#
C#基础语法(数组和函数)
C#基础语法(数组和函数)
69 1
|
7月前
|
存储 C# C++
C# 笔记2 - 数组、集合与与文本文件处理
C# 笔记2 - 数组、集合与与文本文件处理
82 0