- 声明数组
数据类型[] 数组名;
- 初始化数组
数组名 = new 数据类型[元素总数];
例:int[] array = new int[5];
- 赋值
array[0] = 1;
private void Array()
{
//声明
int[] array0;
//初始化
array0 = new int[3];
//赋值
array0[0] = 0;
array0[1] = 1;
array0[2] = 2;
//数组其他写法
//1.初始化 + 赋值
string[] array01 = new string[2] { "a", "b" };
//string[] array01 = new string[] { "a", "b" };
//2.声明 + 赋值
int[] array02 = { 1, 2, 3, 4 };
}
- 练习:彩票生成器
(1)玩法类型及承销
双色球是一种大盘玩法游戏,属乐透型彩票范畴,由中国福利彩票发行管理中心统一组织发行,在全国范围内销售。
(2)玩法说明
双色球投注区分为红球号码区和蓝球号码区,红球号码范围为01~33,蓝球号码范围为01~16。双色球每期从33个红球中开出6个号码,从16个蓝球中开出1个号码作为中奖号码,双色球玩法即是竞猜开奖号码的6个红球号码和1个蓝球号码,顺序不限
(3)设奖及中奖
奖级 | 中奖条件 | 中奖说明 | 单注奖金 | 单注赔率 | |
红球 | 蓝球 | ||||
一等奖 | ●●●●●● | ● | 中6+1 | 当奖池资金低于1亿元时,奖金总额为当期高等奖奖金的75%与奖池中累积的奖金之和,单注奖金按注均分,单注最高限额封顶500万元。 | -- |
二等奖 | ●●●●●● |
| 中6+0 | 当期高等奖奖金的25% |
|
三等奖 | ●●●●● | ● | 中5+1 | 单注奖金额固定为3000元 | 1:1500 |
四等奖 | ●●●●● |
| 中5+0 | 单注奖金额固定为200元 | 1:100 |
●●●● | ● | 中4+1 | |||
五等奖 | ●●●● |
| 中4+0 | 单注奖金额固定为10元 | 1:5 |
●●● | ● | 中3+1 | |||
六等奖 | ●● | ● | 中2+1 | 单注奖金额固定为5元 | 1:2.5 |
● | ● | 中1+1 | |||
| ● | 中0+1 |
/* 彩票生成器:
* 红球:1--33 6个 不能重复
* 蓝球:1--16 1个
* (1) 在控制台中购买彩票的方法int[7]
* 请输入第1个红球号码
* "号码不能超过1--33" "当前号码已存在"
*
* (2) 随机产生一注彩票的方法int[7]
* random.Next(1,34);
* 要求:红球号码不能重复,且按照从小到大排序
*
* (3) 两注彩票比较的方法,返回中奖等级
* 先计算红球、篮球中奖数量
*
* 在控制台程序Main中测试
*/
//买的彩票
private static int[] BuyTicket()
{
int[] ticket = new int[7];
//前6个红球
for (int i = 0; i < 6;)
{
Console.WriteLine("请输入第{0}个红球号码:", i + 1);
int redNumber = int.Parse(Console.ReadLine());
if (redNumber < 1 || redNumber > 33)
Console.WriteLine("购买的号码超过范围");
else if (Array.IndexOf(ticket, redNumber) >= 0)
Console.WriteLine("号码已经存在");
else
ticket[i++] = redNumber;
}
//第7个蓝球
while (true)
{
Console.WriteLine("请输入蓝球号码:");
int blueNumber = int.Parse(Console.ReadLine());
if (blueNumber >= 1 && blueNumber <= 16)
{
ticket[6] = blueNumber;
break;
}
else
{
Console.WriteLine("号码超过范围");
}
}
return ticket;
}
//随机生成的彩票
static Random random = new Random();
private static int[] CreateRandomTicket()
{
int[] ticket = new int[7];
for (int i = 0; i < 6;)
{
int redNumber = random.Next(1, 34);
//如果redNumber在数组中不存在
if (Array.IndexOf(ticket, redNumber) < 0)
ticket[i++] = redNumber;
}
ticket[6] = random.Next(1, 17);
//红球号码排序
Array.Sort(ticket,0,6);
return ticket;
}
//比较彩票,判断几等奖
private static int TicketEquals(int[] myTicket, int[] randomTicket)
{
//计算红球、蓝球中奖数量
int blueCount = myTicket[6] == randomTicket[6] ? 1 : 0;
int redCount = 0;
//我的第i个红球号码,在随机彩票中的红球号码中是否存在
for (int i = 0; i < 6; i++)
{
if (Array.IndexOf(randomTicket, myTicket[i], 0, 6) >= 0)
{
redCount++;
}
}
int level;
if (blueCount + redCount == 7)
level = 1;
else if (redCount == 6)
level = 2;
else if (redCount + blueCount == 6)
level = 3;
else if (redCount + blueCount == 5)
level = 4;
else if (redCount + blueCount == 4)
level = 5;
else if (blueCount == 1)
level = 6;
else
level = 0;
return level;
}
//调用测试
private static void Main()
{
int[] myTicket = BuyTicket();
int level;
int count = 0;
do
{
count++;
int[] randomTicket = CreateRandomTicket();
level = TicketEquals(myTicket, randomTicket);
if (level != 0)
{
Console.WriteLine("恭喜,{0}等奖。累计消费:{1:c}元", level, count * 2);
}
} while (level != 1);
}
- 交错数组
交错数组:每个元素都为一维数组,分布通常想象为“不规则的表格”
int[][] array01;//null
//创建具有4个元素的交错数组
array01 = new int[4][];
//创建一维数组 赋值给 交错数组的第一个元素
array01[0] = new int[3];
array01[1] = new int[5];
array01[2] = new int[4];
array01[3] = new int[1];
//将数据1赋值给交错数组的第一个元素 的 第一个元素
array01[0][0] = 1;
array01[1][2] = 2;
array01[1][4] = 3;
array01[2][1] = 4;
array01[2][3] = 5;
//遍历交错数组
foreach (int[] array in array01)
{
foreach (int element in array)
{
Console.Write(element + "\t");
}
Console.WriteLine();
}
//array01.Length 交错数组元素数(理解为:行数)
for (int r = 0; r < array01.Length; r++)
{
//array01[r].Length 交错数组某个元素的元素数(理解为:列数)
for (int c = 0; c < array01[r].Length; c++)
{
Console.Write(array01[r][c] + "\t");
}
Console.WriteLine();
}
Console.ReadLine();
结果为:
- params 参数数组
//params 参数数组
//对于方法内部而言:就是个普通数组
//对于方法外部(调用者)而言:
//1.可以传递数组
//2.传递一租数据类型相同的变量集合
//3.可以不传递参数
//作用:简化调用者调用方法的代码
private static int Add(params int[] arr)
{
int sum = 0;
foreach (var item in arr)
{
sum += item;
}
return sum;
}
//调用时:
// int result01 = Add(new int[]{1,2,3,4});
// int resule02 = Add(1,2,3,4);
// int result03 = Add();