枚举类型

一组常量的组合,

在不制定任何索引的情况下,默认第一个字段从0开始,之后的依次+1 在指定了某个索引的情况下,之后的依次+1 若之前定义的某字段的索引指向了之后的某个默认字段,那么他俩完全相同

不需要初始化

Console.WriteLine(meiju.five);

//常量字段 Console.WriteLine((int)meiju.five);

//字段代表的值 Console.WriteLine(meiju.one);

//常量字段 Console.WriteLine((int)meiju.one);

//字段代表的值 Console.WriteLine(meiju.four);

//定义枚举类型时,等于之前的一个字段,那么就是等于那个字段

//定义枚举类型时,等于一个int的时候,他和他后面的索引+1

1,

Arraylist + struct 综合练习    数据的存放     数据的 提取     提取时注意格式转变           初始化

//定义一个结构体,存放关于车辆的几个信息
            //将所有车的信息都放入集合中
            //车型号               价格(W)    轴距 (mm)         油耗(L/100km)
            //宝马320Li           38              2920                        6.9
            //宝马520Li           43              3108                        7.2
            //宝马730Li            89              3210                       6.3
            //奥迪A4L35TFSI   31              2869                        6.2
            //奥迪A6L30TFSI   43              3012                        7.6
            //奥迪A8L45TFSI   89              3122                        8.1
            //奔驰C200L           35              2920                        6.1
            //奔驰E260L           48              3014                        6.7
            //奔驰S320L           93              3165                        8

  class Program
{
struct Car
{
public string name;
public double price;
public double zhou;
public double you;
} static void Main(string[] args)
{ #region 购车例题
ArrayList caral=new ArrayList();
Car a1=new Car();
a1.name="宝马320Li";
a1.price=;
a1.zhou=;
a1.you=6.9;
caral.Add(a1);
Car a2=new Car();
a2.name="宝马520Li";
a2.price=;
a2.zhou=;
a2.you=7.2;
caral.Add(a2); Car a3=new Car();
a3.name="宝马730Li";
a3.price=;
a3.zhou=;
a3.you=6.3;
caral.Add(a3); Car a4=new Car();
a4.name="奥迪A4L35TFSI";
a4.price=;
a4.zhou=;
a4.you=6.2;
caral.Add(a4); Car a5=new Car();
a5.name="奥迪A6L30TFSI";
a5.price=;
a5.zhou=;
a5.you=7.6;
caral.Add(a5); Car a6=new Car();
a6.name="奥迪A8L45TFSI";
a6.price=;
a6.zhou=;
a6.you=8.1;
caral.Add(a6); Car a7=new Car();
a7.name="奔驰C200L";
a7.price=;
a7.zhou=;
a7.you=6.1;
caral.Add(a7); Car a8=new Car();
a8.name="奔驰E260L";
a8.price=;
a8.zhou=;
a8.you=6.7;
caral.Add(a8); Car a9=new Car();
a9.name="奔驰S320L";
a9.price=;
a9.zhou=;
a9.you=;
caral.Add(a9);
//所有在售车辆中最便宜的
for (int i = ; i < ;i++ )
{
for (int j = i + ; j < ;j++ )
{
Car q1 =(Car)caral[i];
Car q2 = (Car)caral[j];
if(q1.price>q2.price)
{
object zhong = caral[i];
caral[i] = caral[j];
caral[j] = zhong;
}
}
}
Car cheap = (Car)caral[];
Console.WriteLine("最便宜的是{0},价格{1},轴距{2},油耗{3}。",cheap.name,cheap.price,cheap.zhou,cheap.you); Console.WriteLine("---------------------------------------------------------------------------------------------"); //求宝马中最便宜的车型是什么,所有信息列出
for (int i = ; i < ;i++ )
{
Car baocheap = (Car)caral[i];
if(baocheap.name.Contains("宝马"))
{
Console.WriteLine("宝马车中最便宜的是{0},价格{1},轴距{2},油耗{3}。", baocheap.name, baocheap.price, baocheap.zhou, baocheap.you);
break;
}
}
Console.WriteLine("---------------------------------------------------------------------------------------------"); //选个轴距最长的
for (int i = ; i < ; i++)
{
for (int j = i + ; j < ; j++)
{
Car q1 = (Car)caral[i];
Car q2 = (Car)caral[j];
if (q1.zhou < q2.zhou)
{
object zhong = caral[i];
caral[i] = caral[j];
caral[j] = zhong;
}
}
}
Car zhou = (Car)caral[];
Console.WriteLine("轴距最长的车是{0},价格{1},轴距{2},油耗{3}。", zhou.name, zhou.price, zhou.zhou, zhou.you);
Console.WriteLine("---------------------------------------------------------------------------------------------"); //选个轴距最长的,必须是奔驰
for (int i = ; i < ; i++)
{
Car zhouben = (Car)caral[i];
if (zhouben.name.Contains("奔驰"))
{
Console.WriteLine("奔驰车中轴距最长的是{0},价格{1},轴距{2},油耗{3}。", zhouben.name, zhouben.price, zhouben.zhou, zhouben.you);
break;
}
}
Console.WriteLine("---------------------------------------------------------------------------------------------"); //想要一辆油耗最低的车
for (int i = ; i < ; i++)
{
for (int j = i + ; j < ; j++)
{
Car q1 = (Car)caral[i];
Car q2 = (Car)caral[j];
if (q1.you > q2.you)
{
object zhong = caral[i];
caral[i] = caral[j];
caral[j] = zhong;
}
}
}
Car youdi = (Car)caral[];
Console.WriteLine("油耗最低的车辆是{0},价格{1},轴距{2},油耗{3}。", youdi.name, youdi.price, youdi.zhou, youdi.you);
Console.WriteLine("---------------------------------------------------------------------------------------------"); //想要一辆油耗最低的奥迪车
for (int i = ; i < ; i++)
{
Car zhouben = (Car)caral[i];
if (zhouben.name.Contains("奥迪"))
{
Console.WriteLine("奥迪车中油耗最低的是{0},价格{1},轴距{2},油耗{3}。", zhouben.name, zhouben.price, zhouben.zhou, zhouben.you);
break;
}
}
Console.WriteLine("---------------------------------------------------------------------------------------------"); //我只有50万,看看能买什么车
int biao = ;
for (int i = ; i < ;i++ )
{
Car diwushi = (Car)caral[i];
if(diwushi.price<=)
{
biao++;
Console.WriteLine("第{0}辆:{1},价格{2},轴距{3},油耗{4}。",biao,diwushi.name,diwushi.price,diwushi.zhou,diwushi.you);
}
}
Console.WriteLine("---------------------------------------------------------------------------------------------"); //我只需要60万以上的车,列出来所有车型和所有信息
int biao1 = ;
for (int i = ; i < ; i++)
{
Car diwushi = (Car)caral[i];
if (diwushi.price > )
{
biao1++;
Console.WriteLine("第{0}辆:{1},价格{2},轴距{3},油耗{4}。", biao1, diwushi.name, diwushi.price, diwushi.zhou, diwushi.you);
}
}
Console.WriteLine("---------------------------------------------------------------------------------------------"); //轴距必须超过3m,列列表
int biao2 = ;
for (int i = ; i < ; i++)
{
Car diwushi = (Car)caral[i];
if (diwushi.zhou>)
{
biao2++;
Console.WriteLine("第{0}辆:{1},价格{2},轴距{3},油耗{4}。", biao2, diwushi.name, diwushi.price, diwushi.zhou, diwushi.you);
}
}
Console.WriteLine("---------------------------------------------------------------------------------------------"); //油耗在8.5以下都行,列列表
int biao3 = ;
for (int i = ; i < ; i++)
{
Car diwushi = (Car)caral[i];
if (diwushi.you<=8.5)
{
biao3++;
Console.WriteLine("第{0}辆:{1},价格{2},轴距{3},油耗{4}。", biao3, diwushi.name, diwushi.price, diwushi.zhou, diwushi.you);
}
}
Console.WriteLine("---------------------------------------------------------------------------------------------"); //我不在乎油耗,要油耗最高的车
for (int i = ; i < ; i++)
{
for (int j = i + ; j < ; j++)
{
Car q1 = (Car)caral[i];
Car q2 = (Car)caral[j];
if (q1.you < q2.you)
{
object zhong = caral[i];
caral[i] = caral[j];
caral[j] = zhong;
}
}
}
Car yougao = (Car)caral[];
Console.WriteLine("油耗最高的车辆是{0},价格{1},轴距{2},油耗{3}。", yougao.name, yougao.price, yougao.zhou, yougao.you); #endregion

购车 方法1

2.
public ArrayList al = new ArrayList();      注意位置

//输入班级人数,输入学生的学号、姓名、语数英分数
            //存入结构体
            //然后求语文分数为最高分的两个学生的所有信息
            //数学最高分的两个学生的信息
            //英语平均分

 class Program
{
#region 成绩
//结构体是自定义类型,可以当做数据类型来使用
struct Student
{
public int code;
public string name;
public Score score;
}
struct Score
{
public double yufen;
public double shufen;
public double yingfen;
}
public ArrayList al = new ArrayList(); ******* static void Main(string[] args)
{ #region 班级排名 //输入班级人数,输入学生的学号、姓名、语数英分数
//存入结构体
//然后求语文分数为最高分的两个学生的所有信息
//数学最高分的两个学生的信息
//英语平均分
Console.Write("请输入班级人数:");
int a = int.Parse(Console.ReadLine());
Program hs = new Program();
for (int i = ; i < a;i++ )
{
Student st = new Student();
Console.Write("请输入第{0}个学生的学号:",(i+));
st.code = int.Parse(Console.ReadLine());
Console.Write("请输入第{0}个学生的姓名:", (i + ));
st.name = Console.ReadLine();
Console.Write("请输入第{0}个学生的语文分数:", (i + ));
st.score.yufen = double.Parse(Console.ReadLine());
Console.Write("请输入第{0}个学生的数学分数:", (i + ));
st.score.shufen = double.Parse(Console.ReadLine());
Console.Write("请输入第{0}个学生的英语分数:", (i + ));
st.score.yingfen = double.Parse(Console.ReadLine());
hs.al.Add(st);
}
Console.WriteLine("所有人员信息输入完毕!请按回车键继续!");
Console.ReadLine();
//然后求语文分数为最高分的两个学生的所有信息
for (int i = ; i < a - ;i++ )
{
for (int j = i + ; j < a;j++ )
{
Student st1 =(Student)hs.al[i];
Student st2 =(Student)hs.al[j];
if(st1.score.yufen<st2.score.yufen)
{
object zhong = hs.al[i];
hs.al[i] = hs.al[j];
hs.al[j] = zhong;
}
}
}
Student yu1 = (Student)hs.al[];
Student yu2 = (Student)hs.al[];
Console.WriteLine("语文分数最高的第一个学生的学号:{0},姓名:{1},语文分数:{2},数学分数:{3},英语分数:{4}。",yu1.code,yu1.name,yu1.score.yufen,yu1.score.shufen,yu1.score.yingfen);
Console.WriteLine("语文分数最高的第二个学生的学号:{0},姓名:{1},语文分数:{2},数学分数:{3},英语分数:{4}。", yu2.code, yu2.name, yu2.score.yufen, yu2.score.shufen, yu2.score.yingfen);
//数学最高分的两个学生的信息
for (int i = ; i < a - ; i++)
{
for (int j = i + ; j < a; j++)
{
Student st1 = (Student)hs.al[i];
Student st2 = (Student)hs.al[j];
if (st1.score.shufen < st2.score.shufen)
{
object zhong = hs.al[i];
hs.al[i] = hs.al[j];
hs.al[j] = zhong;
}
}
}
Student shu1 = (Student)hs.al[];
Student shu2 = (Student)hs.al[];
Console.WriteLine("数学分数最高的第一个学生的学号:{0},姓名:{1},语文分数:{2},数学分数:{3},英语分数:{4}。", shu1.code, shu1.name, shu1.score.yufen, shu1.score.shufen, shu1.score.yingfen);
Console.WriteLine("数学分数最高的第二个学生的学号:{0},姓名:{1},语文分数:{2},数学分数:{3},英语分数:{4}。", shu2.code, shu2.name, shu2.score.yufen, shu2.score.shufen, shu2.score.yingfen);
//英语平均分
double sum = ;
for (int i = ; i < hs.al.Count;i++ )
{
Student ying = (Student)hs.al[i];
sum += ying.score.yingfen;
}
Console.WriteLine("班级英语平均分是:"+(sum/a));
#endregion

班级排名

3.递归

函数体内调用本函数自身,直到符合某一条件不再继续调用

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace 递归练习
{
class Program
{
public int yang(int n)
{
int sum = ;
if(n==)
{
return ; }
sum = * (yang(n + ) + ); return sum;
} static void Main(string[] args)
{
Program y = new Program();
Console.Write("路过村字数量:");
int n = int.Parse(Console.ReadLine());
int sum = y.yang(n);
Console.Write(sum);
Console.ReadLine();

递归例题

C# Arraylist + struct 综合练习 枚举ENUE 递归的更多相关文章

  1. 【ACwing 93】【模版】非递归实现组合型枚举——模拟递归

    (题面来自ACwing) 从 1~n 这 n 个整数中随机选出 m 个,输出所有可能的选择方案. 输入格式 两个整数 n,m ,在同一行用空格隔开. 输出格式 按照从小到大的顺序输出所有方案,每行1个 ...

  2. ArrayList方法综合练习

    package com.zs.windows; import java.util.ArrayList; import java.util.Scanner; import com.zs.entity.G ...

  3. Swift Enum 枚举

    前言 枚举是一种自定义的数据类型,在 Swift 中枚举类型拥有相当高的自由度.在 Swift 语言中枚举是一级类型,它拥有在其他语言中只有类才拥有的一些特性,比如实例方法,实例构造器等. 枚举声明的 ...

  4. swift学习笔记之-枚举

    //枚举定义 import UIKit //枚举定义 (枚举.结构体.类的名字首字母必须大写,表示为定义了新的类型) /*枚举为一组相关的值定义了一个共同的类型,使你可以在你的代码中以类型安全的方式来 ...

  5. Java实现非递归删除目录

    最近在学C#的文件系统, 发现C#的文件系统貌似比java的东西少一点, 居然连删除目录都直接做好封装了, 想到学java的时候还要自己写递归删除, 好像没写过非递归的,就在网上查了下, 关于非递归删 ...

  6. python14 1.带参装饰器 | wrapper 了了解 # 2.迭代器 ***** # 可迭代对象 # 迭代器对象 # for迭代器 # 枚举对象

    ## 复习 '''函数的嵌套定义:在函数内部定义另一个函数 闭包:被嵌套的函数 -- 1.外层通过形参给内层函数传参 -- 2.验证执行 开放封闭原则: 功能可以拓展,但源代码与调用方式都不可以改变 ...

  7. day14带参装饰器,迭代器,可迭代对象 , 迭代器对象 ,for迭代器 , 枚举对象

    复习 ''' 函数的嵌套定义:在函数内部定义另一个函数 闭包:被嵌套的函数 -- 1.外层通过形参给内层函数传参 -- 2.验证执行 开放封闭原则: 功能可以拓展,但源代码与调用方式都不可以改变 装饰 ...

  8. Swift5 语言指南(十) 枚举

    一个枚举定义了一个通用型的一组相关的值,使你在你的代码中的一个类型安全的方式这些值来工作. 如果您熟悉C,您将知道C枚举将相关名称分配给一组整数值.Swift中的枚举更灵活,并且不必为枚举的每个案例提 ...

  9. day14(带参装饰器,迭代器,生成器,枚举对象)

    一,复习 ''' 函数的嵌套定义:在函数内部定义另一个函数 闭包:被嵌套的函数 -- 1.外层通过形参给内层函数传参 -- 2.验证执行 开放封闭原则: 功能可以拓展,但源代码与调用方式都不可以改变 ...

随机推荐

  1. Eclipse将引用了第三方jar包的Java项目打包成jar文件的两种方法

    方案一:用Eclipse自带的Export功能 步骤1:准备主清单文件 “MANIFEST.MF”, 由于是打包引用了第三方jar包的Java项目,故需要自定义配置文件MANIFEST.MF,在该项目 ...

  2. spark在windows下的安装

      Windows下最简的开发环境搭建这里的spark开发环境, 不是为apache spark开源项目贡献代码, 而是指基于spark的大数据项目开发. Spark提供了2个交互式shell, 一个 ...

  3. AlwaysOn可用性组功能测试(二)--SQL Server群集故障转移对AlwaysOn可用性组的影响

    三. SQL Server群集故障转移对AlwaysOn可用性组的影响 1. 主副本在SQL Server群集CLUSTEST03/CLUSTEST03上 1.1将节点转移Server02.以下是故障 ...

  4. oracle 使用ID关键字作列名导致索引失效

    oracle表空间变更导致主键索引失效,重建索引即可

  5. dwz 在dialog里打开dialog

    需要在打开dialog里再弹出一个dialog的话,需要在打开第一个dialog的地方指定rel,这样就可以弹出第二个dialog而不是替换掉第一个dialog <a class="a ...

  6. Ubuntu 14 如何创建软件的 启动器/桌面图标?

    如题所示:Ubuntu 14 如何创建软件的 启动器/桌面图标? 解决方案: 将 /usr/share/applications/ 里面的相应图标复制到桌面即可. 同理,也可“拖动”到左边的“启动器栏 ...

  7. 宿主系统为Ubuntu 14,CentOS 6.5 安装VirtualBox增强工具失败:Building the OpenGL support module[FAILED]

    安装先前的笔记:CentOS 6.3 中安装VirtualBOX增强工具失败:Building the main Guest Additions module[FAILED],执行了以下命令 #安装 ...

  8. Asp.net 网站防攻击安全设置

    针对已解密的_ViewStat参数漏洞整改建议:在<system.web>下添加 <machineKey validation="3DES"/> 禁用脚本调 ...

  9. java网络osi基础

  10. BZOJ2002——[Hnoi2010]Bounce 弹飞绵羊

    1.题目大意:就是给一个动态的森林求size域 2.分析: 这个就是一个动态树问题,对于每一个位置i有i+ki这个父亲, 于是这就是一个森林了,然后对于每一个修改直接lct维护就好,询问就是i到最外面 ...