C#基础篇四数组
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace P01Array
{
class Program
{
static void Main(string[] args)
{
int[] arr = new int[2] { 22, 33 };
double dd = arr[0]; ArrTurnBig();
Console.ReadLine();
} #region 3.0 为数组“扩容”
/// <summary>
/// 3.0 为数组“扩容”
/// </summary>
static void ArrTurnBig()
{
int[] arr = new int[3] { 110, 220, 3330 };
//arr.Length
//arr[0] = 11; //创建一个新的数组,长度(容量)是原来数组的长度 +1(简而言之就是 多一个空间!)
int[] arrNew = new int[arr.Length + 1]; //1.将 原来数组 里的元素 拷贝 到 新数组 对应下标 的空间中
//1.1使用代码直接拷贝,缺点:代码量大
//arrNew[0] = arr[0];
//arrNew[1] = arr[1];
//arrNew[2] = arr[2];
//1.2使用方法拷贝,将 源数组 里的 元素 按照下标 依次拷贝到 目标数组中!
// 第二个参数是 指 从 目标数组 的 第几个空间开始存放!
arr.CopyTo(arrNew, 1); }
#endregion #region 2.0 数组的循环 和 初始化器
/// <summary>
/// 数组的循环 和 初始化器
/// </summary>
static void M12ArrayFor()
{
int[] arrint2 = new int[2] { 110, 22 };
int[] arrInt = new int[3];
arrInt[0] = 1;
arrInt[1] = 13;
arrInt[2] = 12;
arrInt[0] = 14; //1.数组的初始化器-----------------------
//平时我们创建一个数组后,数组里的空间 都是默认值 或者 都是空!
// 有默认值的变量:int,float,double... bool(false)
// 没有默认值的变量类型:string(null)
//如果需要给值的话,必须 通过下标 一个个的去给值!太麻烦了~~~~!
// 初始化器 就是为了能够 方便的 为 数组在创建的 同时 赋值的 语法
string[] arrStrNames = new string[3] { "小白", "大林老师", "苍老师" };
string[] arrStrNames2 = new string[] { "小白", "大林老师", "苍老师", "波老师" };
string[] arrStrNames3 = { "小白", "大林老师", "苍老师", "波老师", "小林老师" }; /*2. 数组专有名词
* 数组的元素:指的就是 数组里 第n个空间 里存放的值!
* 数组的长度:数组 的空间个数!
* 数组的下标:就是指 要访问的数组的空间 的"序号",注意:"序号"从 0 开始!
*/
//3.数组的遍历------------------------------------
//3.1一般使用 for循环来遍历数组里的元素
Console.WriteLine("for 循环 遍历数组:");
for (int i = 0; i < arrStrNames3.Length; i++)
{
string strTemp = arrStrNames3[i];//需要 根据 当前循环的i的数值,去数组中 获取 对应下标的 元素!
Console.WriteLine(strTemp);
} //3.2foreach循环:可以直接 从 数组中 依次 获取 元素
Console.WriteLine("foreache 循环 遍历数组:");
foreach (string strElement in arrStrNames3)
{
Console.WriteLine(strElement);
}
}
#endregion #region 1.0 讲解数组基本语法
/// <summary>
/// 1.0 讲解数组基本语法
/// </summary>
static void M11Array()
{
/*1.创建数组 的 语法
* =号左侧的代码 int[] arrInts ,就是在栈空间 开辟了一个 指针大小的空间 用来存放 地址;
* =号右侧的代码 new int[3],就是在堆空间 开辟 连续的 3个 int类型大小 的 空间!
* =号 将 3个空间的 第1个空间的地址 设置给了 变量 arrInts
*/
int[] arrInts = new int[3]; //2.使用【下标】为数组赋值
arrInts[0] = 111;
arrInts[1] = 777;
arrInts[2] = 7777; //3.访问数组里 指定下标 的值
Console.WriteLine(arrInts[0]);
Console.WriteLine(arrInts[1]);
Console.WriteLine(arrInts[2]); }
#endregion #region 1.1 数组习题
/// <summary>
/// 1.1 数组习题
/// </summary>
static void M10Array()
{
//1.要求 保存 用户输入的 n 个学员名字!
Console.WriteLine("请输入您班上同学的人数:");
int stuCount = int.Parse(Console.ReadLine());
//1.1根据 学员人数,创建 一组 字符串类型 的 变量
string[] names = new string[stuCount];//创建了一组 stuCount 个 字符串类型的 变量 //2.接收学员的名字,存入 数组中
for (int i = 0; i < stuCount; i++)
{
Console.WriteLine("请输入第{0}位学员的名字:", i + 1);
//?问题,用什么来保存 这 n个学员的名字呢?
names[i] = Console.ReadLine();
} //3.使用for循环 遍历数组 里的 每个 名字
// 数组有个 Length属性,返回 数组里空间的 个数!(数组长度)
for (int i = 0; i < names.Length; i++)
{
Console.WriteLine("第{0}学员名字:{1}", i + 1, names[i]);
} }
#endregion #region 题目7:猜测 随机数--如果用户输入的字符串 不能转换成 int 变量,那么 就提示用户输入错误,请他重新输入!(int.TryParse)
/// <summary>
/// 题目7:猜测 随机数
/// </summary>
static void M07Random()
{
/* 猜数字游戏. 随机产生1个1-100之间的数
* 让用户猜 当用户输入的数比产生的随机数大 就输出 猜大了。
* 当用户输入的数比产生的随机数小的时候 就输出 猜小了
* 当用户刚好输入的就是这个随机数的时候 提示成功 并显示用户猜了多少次.*/
//1.随机产生1个1-100之间的数
Random ran = new Random();//创建 随机数生成器 对象
int ranNum = ran.Next(1, 51);//产生一个 1~50 之间的随机数
Console.WriteLine("随机数已产生成功~~~");
int guessNum = 0;//用户猜的次数
//2.用户猜
while (true)
{
Console.WriteLine("请输入您的竞猜数值:"); //接收用户的 输入,并进行 类型监测,如果不是整型的变量,则重新输入!
string strUsrNum = Console.ReadLine();
int usrNum = 0;
//将 字符串strUsrNum 转成 整型变量 赋值给 整型的 usrNum变量;
// 如果 转换成功,则返回 true
// 如果 转换失败,则返回 false
bool isNum = int.TryParse(strUsrNum, out usrNum); if (!isNum)//如果用户输入的字符串 不能转换成 int 变量,那么 就提示用户输入错误,请他重新输入!
{
Console.WriteLine("请输入数值!");
continue;//结束本次循环,进入下一次循环
} guessNum++;//记录猜测的次数 if (usrNum == ranNum)
{
Console.WriteLine("恭喜您,猜对了~~送你两个美女~~~~!请笑纳~!");
break;
}
else if (usrNum > ranNum)
{
Console.WriteLine("您猜的数字 大了~~!");
}
else if (usrNum < ranNum)
{
Console.WriteLine("您猜的数字 小了~~!");
}
}
Console.WriteLine("您一共猜了{0}次~~", guessNum);
}
#endregion #region 题目6:用户输入班级的人数. 然后依次输入他们的成绩. 输出总成绩 和 平均成绩.(求和、再求平均值)
/// <summary>
/// 题目6:用户输入班级的人数. 然后依次输入他们的成绩. 输出总成绩 和 平均成绩.(求和、再求平均值)
/// </summary>
static void M07SumAndAvg()
{
int totalScore = 0; Console.WriteLine("请输入您所在班级的人数:");
int stuCount = int.Parse(Console.ReadLine()); //循环班级人数次数,依次累加 班级总成绩
for (int i = 0; i < stuCount; i++)
{
Console.WriteLine("请输入第【{0}】位学员的成绩:", i + 1);
int stuScore = int.Parse(Console.ReadLine());
totalScore += stuScore; //相当于: totalScore = totalScore + stuScore;
} Console.WriteLine("您所在班级总人数为{0},总成绩为:{1},平均分为:{2}", stuCount, totalScore, totalScore * 1.0f / stuCount);
}
#endregion #region 题目5:计算1到100(含)之间的除了能被7整除之外所有整数的和
/// <summary>
/// 题目5:计算1到100(含)之间的除了能被7整除之外所有整数的和
/// </summary>
static void M06Sum()
{
int sum = 0;
for (int i = 1; i <= 100; i++)
{
//如果能被7 整除,则 跳过 【本次循环--continue后的代码不执行,直接进入下次循环】
if (i % 7 == 0)
continue; sum += i;
}
Console.WriteLine("总和为:" + sum);
}
#endregion #region 题目4:用户输入5个数值,最后显示输入的最大值
/// <summary>
/// 题目4:用户输入5个数值,最后显示输入的最大值
/// </summary>
static void M05Max()
{
//最大值 变量
int maxNum = -1;
//循环接收 5次 用户的值
for (int i = 0; i < 5; i++)
{
Console.WriteLine("请输入第【{0}】个数字:", i + 1);
//接收用户的 数值
int num = int.Parse(Console.ReadLine());//Convert.ToInt32();
//判断 用户数值 是否比原来的 最大值大
if (num > maxNum)
{
//如果大,则把用户数值 作为新的最大值 存起来
maxNum = num;
}
} Console.WriteLine("最大值为" + maxNum);
}
#endregion #region 题目3:求1-100之间6的倍数的个数
/// <summary>
/// 题目3:求1-100之间6的倍数的个数
/// </summary>
static void M04()
{
//求1-100之间6的倍数的个数
int count = 0;
for (int i = 1; i <= 100; i++)
{
if (i % 6 == 0)
{
count++; //count = count + 1;
}
}
Console.WriteLine("1-100之间6的倍数的个数:" + count);
}
#endregion #region 题目2:乘法口诀表
/// <summary>
/// 题目2:乘法口诀表
/// </summary>
static void M03()
{
/*
* 1*1=1
* 2*1=2 2*2=4
* 3*1=3 3*2=6 3*3=9
* ..............
* 9*1=9 .............................9*9=81
*/ //1.0 循环行
for (int row = 1; row <= 9; row++)
{
//2.0 根据 当前行 循环打印 当前行里的 列
for (int col = 1; col <= row; col++)
{
//3.0 输出 列 * 行 = 乘积
string strMsg = string.Format("{0}*{1}={2}\t", col, row, (col * row));
Console.Write(strMsg);
}
Console.Write("\n");
}
}
#endregion #region 题目1:问do u love me?
/// <summary>
/// 题目1:问do u love me?
/// </summary>
static void M02()
{
//1.凡是 根据条件来循环,就用 while 或者 do while
//while (true)
//{
// Console.WriteLine("Do u love me ~~~ ?");
// string res = Console.ReadLine();
// if (res == "yes")
// {
// break;
// }
//} //string res = "";
//do
//{
// Console.WriteLine("Do u love me ~~~ ?");
// res = Console.ReadLine();
//} while (res != "yes"); //2.虽然 for循环也可以完成,但是不建议使用它来根据条件循环; for 循环时专门用来 根据次数循环的!
for (; ; )
{
Console.WriteLine("Do u love me ~~~ ?");
string res = Console.ReadLine();
if (res == "yes")
{
break;
}
} Console.WriteLine("thks~~~~ just kidding~~!");
}
#endregion #region 1.0 作业题 void M01Homework()
/// <summary>
/// 1.0 作业题
/// </summary>
static void M01Homework()
{
int a = 110;
//注意:&& 符号 在执行的时候 是从左到右的执行,遇到任何一个 false,就立即结束运行,并返回 false
// &&只有整个表达式里所有的判断都为true,才返回true
// 其中任何一个判断 为false,就返回false
if (a++ > 220 && ++a < 50)
{ }
Console.WriteLine(a);
}
#endregion
}
}
C#基础篇四数组的更多相关文章
- Hybrid APP基础篇(四)->JSBridge的原理
说明 JSBridge实现原理 目录 前言 参考来源 前置技术要求 楔子 原理概述 简介 url scheme介绍 实现流程 实现思路 第一步:设计出一个Native与JS交互的全局桥对象 第二步:J ...
- docker+k8s基础篇四
Docker+K8s基础篇(四) pod控制器 A:pod控制器类型 ReplicaSet控制器 A:ReplicaSet控制器介绍 B:ReplicaSet控制器的使用 Deployment控制器 ...
- Python基础篇(四)_组合数据类型的基本概念
Python基础篇——组合数据类型的基本概念 集合类型:元素的集合,元素之间无序 序列类型:是一个元素向量,元素之间存在先后关系,通过序号进行访问,没有排他性,具体包括字符串类型.元组类型.列表类型 ...
- 新年在家学java之基础篇--循环&数组
因为“野味肺炎”的肆虐,过年被迫宅家只能吃了睡.睡了吃.这么下次只能长膘脑子空空,不如趁此机会重新学习java基础,为日后做铺垫~ 循环结构: 几种循环:for(::),while(){},do{}w ...
- Java_基础篇(数组的反转)
数组反转也是Java的基础. 数组反转要求掌握的是: 1).创建一个数组,在内存中申请一块空间. 2).实例化数组. 3).对数组的了解.如:数组的长度,数组的下标,数组的表示方法. 4).数组的交换 ...
- java学习笔记(基础篇)—java数组
一:什么是数组,什么时候使用数组? 数组是用来保存一组数据类型相同的元素的有序集合,数组中的每个数据称为元素.有序集合可以按照顺序或者下标取数组中的元素. 在Java中,数组也是Java对象.数组中的 ...
- PHP 开发工程师基础篇 - PHP 数组
数组 (Array) 数组是 PHP 中最重要的数据类型,可以说是掌握数组,基本上 PHP 一大半问题都可以解决. PHP 数组与其他编程语言数组概念不一样.其他编程语言数组是由相同类型的元素(ele ...
- VBS基础篇 - 动态数组
VBS中的动态数组需要使用System.Collections.ArrayList '建立动态数组 Dim Arrl : Set Arrl = CreateObject("System.Co ...
- 前端开发之JavaScript基础篇四
主要内容: 1.定时器 2.正则表达式入门 3.元字符 4.正则表达式实战运用 一.定时器 javaScript里主要使用两种定时器,分别是:setInterval()和setTimeout(). 1 ...
随机推荐
- 阿里云oss如何上传一个文件夹
最近公司在做工程项目,实现文件夹云存储上传 网上找了很久,发现很多项目都存在一些问题,但还是让我找到了一个成熟的项目. 工程: 对项目的文件夹云存储上传功能做出分析,找出文件夹上传的原理,对文件夹的云 ...
- C#重点内容之:事件(Event)
一.事件的五个组成部分 事件的五个部分: 事件拥有者(对象) 事件成员(Event ,成员) 事件的响应者(对象) 事件处理器(成员,本质是一个回调方法) 事件订阅——把事件处理器与事件关联在一起 二 ...
- winSockets编程(七)WSAAsyncSelect模式
占位## #include <WinSock2.h> #include <Windows.h> #include <StrSafe.h> #pragma comme ...
- 20169207《linux内核原理与分析》第二周作业
第一部分:学习MOOC网Linux内核分析的课程. 首先对冯诺依曼体系结构和存储程序计算机工作模型进行了了解,查阅资料,对冯诺依曼体系的特点与课堂上的相结合,真实明白了模型的特点. 在汇编C语言程序时 ...
- 机器学习之Apriori算法和FP-growth算法
1 关联分析 无监督机器学习方法中的关联分析问题.关联分析可以用于回答"哪些商品经常被同时购买?"之类的问题. 2 Apriori算法 频繁项集即出现次数多的数据集 支持度 ...
- 转载:Java项目读取配置文件时,FileNotFoundException 系统找不到指定的文件,System.getProperty("user.dir")的理解
唉,读取个文件,也就是在项目里面去获得配置文件的目录,然后,变成文件,有事没事,总是出个 FileNotFoundException 系统找不到指定的文件,气死人啦. 还有就是:System.get ...
- hdu 1443 Joseph【约瑟夫环】
题目 题意:一共有2k个人,分别为k个好人和k个坏人,现在我们需要每隔m个人把坏人挑出来,但是条件是最后一个坏人挑出来前不能有好人被挑出来..问最小的m是多少 约瑟夫环问题,通常解决这类问题时我们把编 ...
- hdu 5086 数列连续和求和
http://acm.hdu.edu.cn/showproblem.php?pid=5086 求一段数列里面所有连续和的和,卡精度 规律很明显,数列里面每个数都被加了i*(n+1-i)次 注意下精度即 ...
- 【.NET架构】BIM软件架构02:Web管控平台后台架构
一.前言 之前一篇叙述的是Revit插件(桌面软件)的软件架构,本篇将开始叙述Web项目的架构方案.今年一月在老东家加入BIM平台部门,为一些大型国家项目搭建BIM管控平台,业主使用管控 ...
- Java基础巩固——反射
什么是反射 反射机制就是指程序运行时能够获取自身的信息.在Java中,只要给出类的名字,就可以通过反射机制来获取类的信息 哪里用的到反射机制 在jdbc中就是使用的反射来实例化对象,比如:Class. ...