方法重载
天数小时分钟换算秒使用重载代码示例
namespace day4
{
class Program
{
// 方法的重载
static void Main(string[] args)
{
int second1 = GetTotalSecond(5, 5, 5);
Console.WriteLine(second1);
Console.ReadLine();
}
/// <summary>
/// 时间换算:分钟到秒
/// </summary>
/// <param name="minute">分钟</param>
/// <returns>秒</returns>
private static int GetTotalSecond(int minute)
{
return minute * 60;
}
/// <summary>
/// 时间换算:小时分钟到秒
/// </summary>
/// <param name="hour">小时</param>
/// <param name="minute">分钟</param>
/// <returns>秒</returns>
private static int GetTotalSecond(int hour,int minute)
{
return GetTotalSecond(minute + hour * 60);
}
/// <summary>
/// 时间换算:天数小时分钟到秒
/// </summary>
/// <param name="day">天数</param>
/// <param name="hour">小时</param>
/// <param name="minute">分钟</param>
/// <returns>秒</returns>
private static int GetTotalSecond(int day,int hour,int minute)
{
return GetTotalSecond(hour + day * 24, minute);
}
}
}
递归
将一个复杂的问题简单化,交给子问题
递归方法计算阶乘代码示例
// 递归
static void Main()
{
// 阶乘问题使用递归解决
int total = GetFactorial(10);
Console.WriteLine(total);
Console.ReadLine();
}
/// <summary>
/// 递归计算阶乘
/// </summary>
/// <param name="num">数</param>
/// <returns>阶乘结果</returns>
private static int GetFactorial(int num)
{
if (num == 1) return 1;
return num * GetFactorial(num - 1);
}
数组
代码例子
// 数组
static void Main()
{
int[] a;
// 初始化 new 数据类型[容量]
a = new int[6];
for (int i = 0; i < a.Length; i++)
{
a[i] = i + 1;
Console.WriteLine(a[i]);
}
Console.ReadLine();
// 数组其他写法
// 初始化 + 赋值
string[] array1;
array1 = new string[2] {"a", "b"};
// 声明 + 初始化 + 赋值
bool[] aray2 = {true, true, false};
}
录入学生成绩,找到最高分
代码例子
// 录入学生成绩,找到最高分
static void Main()
{
float[] scoreArray = CreatScoreArray();
float maxScore = GetMax(scoreArray);
Console.WriteLine(maxScore);
Console.ReadLine();
}
/// <summary>
/// 录入学生成绩,去除不合理成绩
/// </summary>
/// <returns>成绩列表</returns>
private static float[] CreatScoreArray()
{
Console.WriteLine("请输入学生总数:");
int count = int.Parse(Console.ReadLine());
float[] scoreArray;
scoreArray = new float[count];
for (int i = 0; i < count;)
{
Console.WriteLine("请输入第{0}个学生的成绩:",i+1);
float score = float.Parse(Console.ReadLine());
if (score >= 0 && score <= 100)
scoreArray[i++] = score;
else
Console.WriteLine("输入成绩有误");
}
return scoreArray;
}
/// <summary>
/// 找数组的最大值
/// </summary>
/// <param name="array">数组</param>
/// <returns>最大值</returns>
private static float GetMax(float[] array)
{
float max = array[0];
for (int i = 0; i < array.Length; i++)
{
if (max < array[i])
{
max = array[i];
}
}
return max;
}
foreach
static void Main()
{
//foreach(元素类型 变量名 in 数组名称)
//{ 变量名 即 数组每一个元素}
// 从头到尾依次读取元素
int[] array = new int[5] {1, 2, 3, 4, 5};
foreach (int item in array)
{
Console.WriteLine(item);
}
}
推断类型 var
父类类型 声明Array 赋值子类对象
Array array01 = new int[2] 方法(参数类型可用Array)
万类之祖 声明Object 赋值 任意类型
数组常用方法
static void Main()
{
int[] array01 = {0, 1, 2, 6, 5, 4, 6};
int[] array02 = {0, 1, 2, 3, 4, 5, 6};
// 数组长度 数组名.Length
int length = array01.Length;
// 清除元素 Array.Clear 删掉的元素替换为初值
Array.Clear(array02,3,2);
for (int i = 0; i < length; i++)
Console.Write(array02[i]);
Console.WriteLine();
// 复制元素 Array.Copy 数组名.CopyTo
int[] array03 = new int[10];
Array.Copy(array01,array03,4);
for (int i = 0; i < array03.Length; i++)
Console.Write(array03[i]);
// 克隆 数组名.Clone
int[] obj = (int[])array01.Clone();
// 查找元素 Array.IndexOf Array.LastIndexOf
int index1 = Array.IndexOf(array01, 6);
Console.WriteLine();
Console.WriteLine(index1);
int index2 = Array.LastIndexOf(array01, 6);
Console.WriteLine(index2);
// 排序 Array.Sort
Array.Sort(array01);
// 反转 Array.Reverse
Array.Reverse(array01);
}
随机生成一组双色球数字的方法
代码示例
/* 双色球代码
* 红球:1~33 6
* 蓝球:1~16 1
* (1) 在控制台中购买彩票的方法int[7]
* “请输入第1个红球号码”
* “号码不能超过1~33” “当前号码已存在”
*
* (2) 随机产生一注彩票的方法int[7]
* random.Next(1,34)
* 要求:红球号码不能重复,且按照从小到大排序
*
* (3) 两注彩票比较的方法,返回中将等级
* 先计算红球、篮球中奖数量
*
* 在Main中测试
*/
static void Main()
{
// int[] myTicket = {1,2,3,4,5,6,7};
int[] myTicket = CreatRandomTicket();
// int[] myTicket = BuyTicket();
int[] randomTicket = CreatRandomTicket();
Console.WriteLine("买的彩票");
ShowTicket(myTicket);
Console.WriteLine("随机的彩票");
ShowTicket(randomTicket);
int level = TicketEquals(myTicket, randomTicket);
if (level!=0)
Console.WriteLine("恭喜,{0}等奖",level);
else
Console.WriteLine("没中");
}
/// <summary>
/// 显示号码段
/// </summary>
/// <param name="ticket"></param>
private static void ShowTicket(int[] ticket)
{
for (int i = 0; i < ticket.Length; i++)
{
if (i<6)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.Write(ticket[i]+"\t");
}
else
{
Console.ForegroundColor = ConsoleColor.Blue;
Console.Write(ticket[i]);
}
}
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine();
}
/// <summary>
/// 购买号码
/// </summary>
/// <returns>6+1</returns>
private static int[] BuyTicket()
{
int[] ticket = new int[7];
// 前6个红球
for (int i = 0; i < 6;)
{
Console.WriteLine("请输入第{0}个红球号码:",i);
int redNumber = int.Parse(Console.ReadLine());
if (redNumber >= 1 && redNumber <= 33)
Console.WriteLine("购买号码超出范围");
else if (Array.IndexOf(ticket, redNumber, 0) > 0)
Console.WriteLine("号码已经存在");
else
ticket[i++] = redNumber;
}
// 蓝球
Console.WriteLine("请输入蓝球号码:");
while (true)
{
int blueNumber = int.Parse(Console.ReadLine());
if (blueNumber>=1 && blueNumber<=16)
{
ticket[6] = blueNumber;
break;
}
else
{
Console.WriteLine("输入有误请重新输入");
}
}
return ticket;
}
/// <summary>
/// 随机生成双色球号码
/// </summary>
/// <returns>号码排序</returns>
private static int[] CreatRandomTicket()
{
Random random = new Random();
int[] ticket = new int[7];
for (int i = 0; i < 6;)
{
int redNumber = random.Next(1, 34);
// redNumber在数组中不存在
if (Array.IndexOf(ticket, redNumber, 0) < 0)
ticket[i++] = redNumber;
}
ticket[6] = random.Next(1, 17);
// 红球号码排序
Array.Sort(ticket,0,6);
return ticket;
}
/// <summary>
/// 通过购买和随机的双色球对比,得到中奖等级
/// </summary>
/// <param name="myTicket">买的6+1</param>
/// <param name="randomTicket">随机的6+1</param>
/// <returns>中奖等级</returns>
private static int TicketEquals(int[] myTicket, int[] randomTicket)
{
// 计算红球、蓝球的中奖数量
int blueCount = myTicket[6] == randomTicket[6] ? 1 : 0;
int redCount = 0;
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;
}