class Program
{
static void Main(string[] args)
{
//第一种方式
int[] arr=new int[]{8,9};//不能超出2长度的维度;
arr.Length 不是指交错数组的所有元素,而是长度维度;
arr[1][2] = 88;//去改变某个下标的值;
Console.WriteLine(arr[1][2]);
int[][] arr=new int[][]{};
// 通过for循环遍历交错数组;操作下标;
for(int i=0;i<arr.Length;i++){
for (int j = 0; j < arr[i].Length;j++ )
{
Console.WriteLine(arr[i][j]);
}
}
// 通过foreach遍历交错数组,不知道下标;
foreach(int[] num in arr){//返回额是一维数组;
foreach(int num1 in num){//再去遍历一维数组;
Console.WriteLine(num1);
}
}
// 练 通过foreach遍历下标出来;自己去创建下标;
int k=0;
int q=0;
foreach(int[] num_1 in arr ){
foreach(int num_2 in num_1){
Console.WriteLine("arr[{0}][{1}]={2},", k, q,num_2);
q++;
}
q = 0;
k++;
}
Console.WriteLine("\n");
// 练2 通过foreach遍历下标出来;自己去创建下标;
int ii = 0;
int jj = 0;
foreach(int[] numi in arr){
foreach(int numj in numi){
Console.Write("arr[{0}][{1}]={2} ",ii,jj,numj);
jj++;
if(jj==arr[ii].Length){
Console.WriteLine();
}
}
ii++;
jj = 0;
}
// 练3 交错数组第一种方式建立;
int[][] arrij=new int[3][];
arrij[0] = new int[] {1,2,3 };
arrij[1] = new int[] { 1, 2, 3 };
arrij[2] = new int[] { 1, 2, 3 };
// 交错数组的第二种建立方式;
int[][] arr1 = { new int[] { }, new int[] { }, new int[] { } };//没有声明固定长度;
int[][] arr2 = { new int []{1,2,3},new int [] {4,5,6},new int []{7,8,9},new int[]{1,6,8}};//声明一个交错数组并初始化赋值;
//交错第三种建立方式;
// int[][] arr3;//只声明一个交错数组;并没有赋值;
// 交错数组动态赋值;
int[][] arr4 = new int[4][];
for (int i = 0; i < arr4.Length; i++)
{
arr4[i] = new int[] { i, i + 1, i + 2 };
}
Arrayjiaocuo.ArrayJiaoCuo(arr4);//调用类方法
// 交错数组重新赋值;
int[][] arr_11 = new int[4][]; //{ new int[]{ }, new int[]{ }, new int[]{ } };
for (int i = 0; i < arr_11.Length; i++)
{
arr_11[i] = new int[] { i, i+1 , i + 2 };
}
// Array_jiaocuo1.ArrayJiaoCuo(arr_11);
// 练
int[][] arr_1 = new int[5][];
for (int i = 0; i < arr_1.Length; i++)
{
arr_1[i] = new int[i + 1];
for (int j = 0; j < arr_1[i].Length; j++)
{
arr_1[i][j] = j + 1;
}
}
Arrayjiaocuo.ShowJiaocuo(arr_1);
//再练九九乘法
int[][] Arr_1=new int[9][];
for(int i=0;i<Arr_1.Length;i++){
Arr_1[i]=new int[i+1];
for (int j = 0; j < Arr_1[i].Length;j++ )
{
Arr_1[i][j] =(i+1)* (j+1);
}
}
Arrayjiaocuo.ShowJiuJiu(Arr_1);
//--------练习1----------
chongfu:
Console.WriteLine("\n请输入1-10的整数");
int weidu = Convert.ToInt32(Console.ReadLine());
if(weidu<=0||weidu>10){
// Console.WriteLine("请输入1-10的整数");
goto chongfu;
}
int[][] arr5=new int[weidu][];//声明指定维度交错数组
for (int i = 0; i < arr5.Length;i++ )
{
arr5[i]=new int[i+1];
for (int j = 0; j<arr5[i].Length;j++ )
{
arr5[i][j] = j + 1;
}
}
Arrayjiaocuo.ShowJiaocuo(arr5);
// -----------------第一题----------------------
chongfu1:
Console.WriteLine("请输入1-10的整数");
int Lengyh1 = Convert.ToInt32(Console.ReadLine());
if(Lengyh1<=0||Lengyh1>10){
goto chongfu1;
}
int[][] arra=new int[Lengyh1][];
for (int i = 0; i < arra.Length;i++ )
{
arra[i]=new int[i+1];
for (int j = 0; j < arra[i].Length;j++ )
{
arra[i][j] = j * 2 + 1;
}
}
Arrayjiaocuo.ShowJiaocuo(arr);
//-----------------第二题----------------------
Console.WriteLine("请输入一个整数");
int L = Convert.ToInt32(Console.ReadLine());
int[] arrs = new int[L];
int js = 0;//计数杀人
int jc = 0;//计算最后一个人
for (int i = 0; i < arrs.Length; i++)
{
arrs[i] = i + 1;
}
int jjj = 0;//计算下标
while (true)
{
if (arrs[jjj] != 0)
{
js++;
if (js == 3)
{
arrs[jjj] = 0;
jc++;
js = 0;
}
}
jjj++;
if (jjj == arr2.Length)
{
jjj = 0;
}
if (jc == arr2.Length - 1)
{
break;
//return arr2[i];
}
}
foreach (int num in arrs)
{
if (num != 0)
{
Console.WriteLine(num);
}
}
Console.ReadKey();
}
}