C#学习day05(开发福彩双色球系统附思维导图)
1.删除数组中的元素接收要删除的元素的索引,将该索引后使用元素向前移一位,即覆盖该元素2.数组中元素反转1.从第一个元素开始和最后一个元素交换。2.然后把第二个元素和倒数第二个元素交换这样只需要交换数组名.length/2次就可以了3.定义一个中间变量实现两数交换如: char temp arr[i];arr[i] arr[arr.Length - 1 - i];arr[arr.Length - 1 - i] temp;数据类型根据数组中存储类型进行改变4.冒泡排序:排序介绍排序主要是针对数字类型进行的。常见的排序方式升序排序、降序排序。升序排序从小到大排列。降序排序从大到小排列。排序算法冒泡排序、快速排序、插入排序、选择排序等。每一种排序实现的方式又有所不同但是最终的结果都是一样的。区别在于时间和空间的不同。2.冒泡排序介绍冒泡排序实现思路和现实生活中水中吐泡泡一样。在水中吐泡泡以后会逐渐的往上升。3. 冒泡排序规则从脚标0的元素开始每两个元素依次进行比较。前一个元素大于后一个元素交换位置。前一个元素不大于后一个元素不交换位置。假设对一个数组中的元素进行升序排序3.1第一轮比较第一次比较脚标0和脚标15和25大于2交换元素的位置。第二次比较脚标1和脚标25和4比较5大于4, 交换元素的位置。第三次比较脚标2和脚标35和3比较5大于3交换元素位置。第四次比较脚标3和脚标45和1比较5大于1交换元素的位置。总结如果长度为Length的数组只需要比较4次。3.2第二轮比较第一次0脚标和1脚标比较2和4比较2不大于4不交换位置。第二次脚标1和脚标2比较4和3比较4大于3交换元素的位置。第三次脚标2和脚标3比较4和1比较4大于1交换元素的位置。总结本轮比较次数为3次。3.3 第三轮比较第一次脚标0和脚标1比较2和3比较2不大于3不交换位置。第二次脚标1和脚标2比较3和1比较3大于1交换元素的位置。总结本轮比较次数为2次。3.4 第四轮比较第一次脚标0和脚标1比较2和1比较2大于1交换元素的位置。总结本轮比较次数为1次。4. 冒泡排序总结4.1 比较的轮数每轮比较都会把本轮比较的最大小值移动到最后面最后剩下的为最大最小比较的轮数为数组长度-1轮。4.2 每轮比较次数假设当前是第i轮i从0开始的值1.第一轮i 0 需比较(length-1 ) - 0 次。之所以减1因为最后一次比较的是最后两个也就是说比较到倒数第二个就可以了。2. 第二轮i 1需要比较(length-1) - 1 次。因为本轮最后1个值不需要比较了。3. 第三轮i 2需要比较length-1- 2 次。因为本轮最后2个值不需要比较了。4. 第四轮i 3,需要比较length-1- 3 次。因为本轮最后3个值不需要比较了。只需要比较1次。5.当第i轮比较时比较的次数为length-1-i。5.多维数组多维数组的本质为数组中的每个元素依然为数组。创建多维数组//2 - 第一维长度//3 - 第二维长度int[,] ints new int[2, 3];6.双色球案列福彩双色球要求如下:福彩双色球由6位1到33的整数红球加1位1到16的整数蓝球组成。new int[5, 8] //最多购买5组每一组中有6个红球号码 1个蓝球号码 1个倍数开奖过程由一台机器完成。里面装有33个红球从33个红球里面随机出6个中奖号码产生的顺序并不是从小打到的。每个球的数字都是不重复的。最后从16个蓝球里面随机产生一个蓝球中奖号码。规则中最难的就是计算一等奖因为一等奖需要看奖金池总数还和累计奖金有关系。在这里我们设定一等奖固定500万元二等奖固定5万元。实现代码如下:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace 福彩双色球系统{internal class Program{static void Main(string[] args){Console.WriteLine(“------------------------”);Console.WriteLine(“欢迎使用福彩双色球系统”);Console.WriteLine(“------------------------”);int[,] redBalls new int[5, 6];int[,] BlueBalls new int[5, 1];int[,] beiShu new int[5, 1];int[] winNumber new int[7];Random rnd new Random();bool[] states1 new bool[34];bool[] states new bool[34];int totalNumber1 0;bool b true, b1 true, b2 true;do{Console.WriteLine(“请选择你想进行的操作”);Console.WriteLine(“1.购买彩票”);Console.WriteLine(“2.查看购买彩票”);Console.WriteLine(“3.开奖”);Console.WriteLine(“4.查看中奖情况”);Console.WriteLine(“5.查看当期开奖号码”);Console.WriteLine(“6.退出系统”);string input Console.ReadLine();switch (input){case “1”:{if(b2 false){Console.WriteLine(“本期已经开奖不能再购买号码”);break;}while (b1){for (int i 0; i states.Length; i){states[i] true;} Console.WriteLine($这是您购买的第{totalNumber1 1}组号码); for (int i 0; i 6; i) { Console.WriteLine($请输入您要购买的第{i 1}个红球号码1-33); int redBallnumber Convert.ToInt32(Console.ReadLine()); while (redBallnumber 1 || redBallnumber 33) { Console.ForegroundColor ConsoleColor.Red; Console.WriteLine(红球号码必须是1-33之间的整数); Console.WriteLine(请重新输入); Console.ResetColor(); redBallnumber Convert.ToInt32(Console.ReadLine()); } if (states[redBallnumber] true) { redBalls[totalNumber1, i] redBallnumber; } else { Console.ForegroundColor ConsoleColor.Red; Console.WriteLine(该号码您之前已经选择过了); Console.WriteLine(请重新输入); Console.ResetColor(); i--; continue; } states[redBallnumber] false; } for (int i 0; i 6; i) { for (int j i 1; j 6; j) { if (redBalls[totalNumber1, i] redBalls[totalNumber1, j]) { int temp redBalls[totalNumber1, i]; redBalls[totalNumber1, i] redBalls[totalNumber1, j]; redBalls[totalNumber1, j] temp; } } } Console.WriteLine(请输入您要购买的蓝球号码1-16); BlueBalls[totalNumber1, 0] Convert.ToInt32(Console.ReadLine()); while (BlueBalls[totalNumber1, 0] 1 || BlueBalls[totalNumber1, 0] 16) { Console.WriteLine(蓝球号码必须是1-16之间的整数); Console.WriteLine(请重新输入); BlueBalls[totalNumber1, 0] Convert.ToInt32(Console.ReadLine()); } Console.WriteLine(请输入您要购买的倍数); beiShu[totalNumber1, 0] Convert.ToInt32(Console.ReadLine()); while (beiShu[totalNumber1, 0] 1 || beiShu[totalNumber1, 0] 99) { Console.WriteLine(倍数必须是1-99之间的整数); Console.WriteLine(请重新输入); beiShu[totalNumber1, 0] Convert.ToInt32(Console.ReadLine()); } Console.WriteLine(是否继续购买下一组号码(y/n)); string continuePurchase Console.ReadLine(); if (continuePurchase y ) { totalNumber1; if (totalNumber1 5) { Console.WriteLine(您已经购买了5组号码不能再购买了); b1 false; continue; } } else { b1 false; continue; } } } break; case 2: // 查看购买彩票逻辑 { Console.ForegroundColor ConsoleColor.Blue; Console.WriteLine($您这张彩票中一共购买了{totalNumber1 1}组号码); Console.WriteLine(购买号码如下); for (int i 0; i totalNumber1; i) { Console.Write($第{i 1}组号码); for (int j 0; j 6; j) { Console.Write(${redBalls[i, j]} ); } Console.Write($ - {BlueBalls[i, 0]} ); Console.WriteLine($ * {beiShu[i, 0]}); } Console.ResetColor(); } break; case 3: // 开奖逻辑 { if (redBalls[0, 0] 0) { Console.ForegroundColor ConsoleColor.Red; Console.WriteLine(您还没有购买号码请先购买号码); Console.ResetColor(); break; } while (b2) { for (int i 0; i states.Length; i) { states1[i] true; } for (int i 0; i 6; i) { int num rnd.Next(1, 34); while (states1[num] false) { num rnd.Next(1, 34); } winNumber[i] num; states1[num] false; } for (int i 0; i 6; i) { for (int j i 1; j 6; j) { if (winNumber[i] winNumber [j]) { int temp winNumber[i]; winNumber[i] winNumber[ j]; winNumber[j] temp; } } } winNumber[6] rnd.Next(1, 17); b2 false; Console.ForegroundColor ConsoleColor.Green; Console.WriteLine(开奖成功); Console.ResetColor(); } } break; case 4: // 查看中奖情况逻辑 { if (redBalls[0,0] 0) { Console.ForegroundColor ConsoleColor.Red; Console.WriteLine(您还没有购买号码请先购买号码); Console.ResetColor(); break; } if(b2 true) { Console.ForegroundColor ConsoleColor.Red; Console.WriteLine(还没有开奖无法查看中奖情况); Console.ResetColor(); break; } int cnt 0; for (int i 0; i totalNumber1; i) { int sumNumber 0; int redCount 0; int blueCount 0; for (int j 0; j 6; j) { for (int k 0; k 6; k) { if (redBalls[i, j] winNumber[k]) { redCount; } } } if (BlueBalls[i, 0] winNumber[6]) { blueCount; } Console.ForegroundColor ConsoleColor.Blue; Console.WriteLine($第{i 1}组号码中奖情况红球中{redCount}个蓝球中{blueCount}个); Console.ResetColor(); sumNumber redCount blueCount; Console.ForegroundColor ConsoleColor.Red; switch (sumNumber) { case 7: Console.WriteLine($恭喜您第{i 1}组中了一等奖5000000元); cnt; break; case 6: if (blueCount 0) { Console.WriteLine($恭喜您第{i 1}组中了二等奖50000元); cnt; } else { Console.WriteLine($恭喜您第{i 1}组中了三等奖3000元); cnt; } break; case 5: Console.WriteLine($恭喜您第{i 1}组中了四等奖200元); cnt; break; case 4: Console.WriteLine($恭喜您第{i 1}组中了五等奖10元); cnt; break; case 3: Console.WriteLine($恭喜您第{i 1}组中了六等奖5元); cnt; break; case 2: Console.WriteLine($恭喜您第{i 1}组中了六等奖5元); cnt; break; case 1: Console.WriteLine($恭喜您第{i 1}组中了六等奖5元); cnt; break; default: Console.WriteLine($很遗憾您第{i 1}组没有中奖); break; } } Console.WriteLine(您共中奖{0}次, cnt); Console.ResetColor(); } break; case 5: // 查看当期开奖号码 { if(b2 true) { Console.ForegroundColor ConsoleColor.Red; Console.WriteLine(还没有开奖无法查看当期开奖号码); Console.ResetColor(); break; } Console.ForegroundColor ConsoleColor.Blue; Console.WriteLine(当期开奖号码为); for (int i 0; i 6; i) { Console.Write(${winNumber[i]} ); } Console.WriteLine(\n您购买的号码为); for(int i 0;i totalNumber1; i) { Console.Write($第{i 1}组号码); for (int j 0; j 6; j) { Console.Write(${redBalls[i, j]} ); } Console.Write($ {BlueBalls[i, 0]} \n); } Console.ResetColor(); } break; case 6: // 退出系统逻辑 { Console.ForegroundColor ConsoleColor.Red; Console.WriteLine(感谢使用福彩双色球系统); Console.WriteLine(欢迎您的再次使用); Console.ResetColor(); b false; break; } default: Console.ForegroundColor ConsoleColor.Red; Console.WriteLine(无效输入请重新选择); Console.ResetColor(); break; } } while (b); Console.ReadKey(); } }}代码实现界面如下:注意:由于使用的是用Int进行接收,所以输入的只能是数字,输入字符等会直接报错,本人较懒就不做修改了,大家可以自行优化;

相关新闻

Roo Code 联邦检索翻车:分数归一后竟吞了 40% 关键结果——多源融合去重避坑指南

Roo Code 联邦检索翻车:分数归一后竟吞了 40% 关键结果——多源融合去重避坑指南

Roo Code 联邦检索翻车:分数归一后竟吞了 40% 关键结果--多源融合去重避坑指南 联邦检索系统的归一化陷阱与工程实践:从62%到89%的优化之路 当多库检索变成俄罗斯轮盘赌:发现问题过程全记录 最初选择 Roo Code 联邦检索系统经过了为期三周的技术评估。我们对比了三种主流方案…

2026/10/28 22:40:22 阅读更多 →
AI智能体安全风险剖析:从英国AISI事故看自主执行的安全防线

AI智能体安全风险剖析:从英国AISI事故看自主执行的安全防线

上周,一个来自英国AI安全研究所(AISI)的测试案例,在技术圈里引发了远超其篇幅的讨论。报告的核心内容听起来像科幻电影的开场:研究人员关闭了某个AI模型内置的“安全过滤器”,然后让这个被“松绑”的AI智能…

2026/10/28 23:34:59 阅读更多 →
Elden Ring存档迁移终极指南:3步安全转移数百小时游戏进度

Elden Ring存档迁移终极指南:3步安全转移数百小时游戏进度

Elden Ring存档迁移终极指南:3步安全转移数百小时游戏进度 【免费下载链接】EldenRingSaveCopier 项目地址: https://gitcode.com/gh_mirrors/el/EldenRingSaveCopier 你是否曾因为更换电脑、游戏版本升级或系统重装而面临艾尔登法环存档丢失的风险&#xf…

2026/10/28 23:34:38 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/10/28 23:48:14 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/10/28 7:28:00 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/10/28 9:02:11 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/10/28 22:10:30 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/10/28 9:00:54 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/10/28 7:29:02 阅读更多 →

日新闻

周新闻

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/28 16:58:40 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/28 9:01:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/28 19:25:09 阅读更多 →