C# 配列学習

1. 定義
配列は、同じ型の要素を格納する固定サイズの順次コレクションです。. 配列は、データを格納するために使用されるコレクションです. 一般に、配列は同じ型の変数のコレクションであると考えられています.
配列は同じデータ型の値の集合です.
データは参照型なのでヒープメモリに格納されます.2
.フォーマット
データ型[]変数名=新しいデータ型[サイズ]
例:int [] a = new int[10]
a. 最初に配列を宣言してから、配列を初期化します
int[] a;
int[] a = new int[10];
b. 配列
int[] a = {1,2を割り当てます,3,4,5,6} 配列の宣言中 ;
c. 配列の作成と初期化
int[] a = new int[5] {1,2,3,4,5};
int[] a = new int[ ] {1,2,3,4,5}; (サイズは省略可能)
3. 例
(1) 1, 1, 2, 3, 5, 8... のシーケンスの最初の 20 個の項目を検索し、それらを合計します。

//定义一个长度20的数组
int[] a = new int[20];
//先定义a[0],a[2]的值,然后通过相邻数相加得下一个数的规律,依次得出数组所有结果
 a[0] = 1;
 a[1] = 1;
int sum = 0;
for (int i = 2; i < 20; i++)
 {
    
    
   a[i] = a[i - 1] + a[i - 2];//得到数组中每一个下标对应的值
 }
for (int j = 0; j < 20; j++)
{
    
    
  Console.Write(a[j] + " ");//每循环一次,就输出一次
  sum += a[j];//同时把每一个数加起来
}
Console.WriteLine();//换行,看着比较美观,可不要
Console.WriteLine(sum);

(2). 長さ 10 の整数配列を定義し、10 個の整数をループに入力します。次に、整数を入力し、整数を検索し、出力添字を見つけ、見つからない場合はプロンプトを出します

 Console.WriteLine("输入十个整数:");
 int[] a = new int[10];
 for (int i = 0; i < 10; i++)
  {
    
    
   Console.Write("第" + (i + 1) + "个整数:");
   int n = int.Parse(Console.ReadLine());
   a[i] = n;
  }
 Console.WriteLine("请输入一个整数:");
 int flag = 0;//判断输入的整数是否存在
 int num = int.Parse(Console.ReadLine());
 for (int j = 0; j < 10; j++)
   {
    
    
     if (num == a[j])
     {
    
    
      Console.WriteLine("找到其下标为:" + j);
      flag = 1;//如果存在,flag则为0
     }
   }
 if (flag == 0)
   {
    
     Console.WriteLine("没有找到");}

(3). 次のような配列があります: int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5}要件 上記の配列で値が 0 の項目を削除し、0 以外の値を新しい配列に格納すると、生成された新しい配列は次のようになります: int newArr [] ={1,3,4,5, 6,6,5, 4,7,6,7,5}

//思路:先找到该数组的长度,然后再把不为0的值存入新的数组
//自己做的方法太复杂了,可以跳过看下一个老师教的
 int[] oldArr = {
    
     1, 3, 4, 5, 0, 0, 6, 6, 0, 5, 4, 7, 6, 7, 0, 5 };//长度16
 int n = 0;//判断0的数量,用来(oldArr.Length-n)得到非0数组的长度
 int length;
 for (int i = 0; i < oldArr.Length; i++)
   {
    
    
     if (oldArr[i] == 0){
    
    n++;}
   }
  int m = 0;//判断0的数量,
  length = oldArr.Length - n;//得到长度12
  int[] newArr = new int[length];//新定义一个数组
  //这个是新数组的下标
  for (int i = 0; i < length; i++)
    {
    
    
    //这个是旧数组的下标
    //假设i=6,则m=2,所以newArr[6]=oldArr[8]
    //此时newArr数组存了:1,3,4,5,6,6
     for (int k = i + m; k < oldArr.Length; k++)
      {
    
    
        if (oldArr[k] == 0)
         {
    
    
           m++;
           continue;
          }
          newArr[i] = oldArr[k];
          break;
          //若这里不中断for循环,
          //k就一直加到旧数组长度,newArr[i]就一直变换
      }
     }
 for (int j = 0; j < length; j++)
   {
    
    
     Console.Write(+newArr[j] + " ");
   }
int[] oldArr = {
    
     1, 3, 4, 5, 0, 0, 6, 6, 0, 5, 4, 7, 6, 7, 0, 5 };
int num = 0;
for (int i = 0; i < oldArr.Length; i++)
 {
    
    
  if (oldArr[i] == 0)
    {
    
    
     num++;
    }
 }
int[] newArr = new int[oldArr.Length - num];
int t = 0;
for (int i = 0; i < oldArr.Length; i++)
  {
    
    
    if (oldArr[i] == 0)
      {
    
    
             
      }else{
    
    
      //将不为0的数放在新数组中
      newArr[t]=oldArr[i];
      t++;
      }
  }
for (int i = 0; i < newArr.Length; i++)
{
    
    
 Console.Write(newArr[i]);
}

おすすめ

転載: blog.csdn.net/weixin_44706943/article/details/125726100