
# include <stdioh>
# include <conioh>
int main (void)
{
enum month{January,February,March,April,May,June,July,August,September,October,November,December};
char name[]={"January","February","March","April","May","June","July","August","September","October","November","December"};
int count[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
int year,i;
printf("Input Year:");
scanf ("%d",&year);
if (((year%4 == 0) && (year%100 != 0)) || year%400 == 0) count[1]++;
for (i = January ; i <= December; i++)
{
printf("%s:%d\n",name[i],count[i]);
}
getch();
return 0;
}
问题一:枚举是什么意思? 枚举简单的说也是一种数据类型,只不过是这种数据类型只包含自定义的特定数据,它是一组有共同特性的数据的 。举个例子,颜色也可以定义成枚举类型,它可以包含你定义的任何颜色,当需丁的时候,只需要通过枚举调用即可,另外比如说季节(春夏秋冬)、星期(星期一到星期日)等等这些具有共同投特征的数据都可以定义枚举。
问题二:枚举类型是什么意思 一般的定义方式如下:
enum enum_type_name
{
ENUM_CONST_1,
ENUM_CONST_2,
ENUM_CONST_n
} enum_variable_name;
注意:enum_type_name 是自定义的一种数据数据类型名,而enum_variable_name 为
enum_type_name类型的一个变量,也就是我们平时常说的枚举变量。实际上enum_type_name
类型是对一个变量取值范围的限定,而花括号内是它的取值范围,即enum_type_name 类型
的变量enum_variable_name 只能取值为花括号内的任何一个值,如果赋给该类型变量的值
不在列表中,则会报错或者警告。ENUM_CONST_1、ENUM_CONST_2、、
ENUM_CONST_n,这些成员都是常量,也就是我们平时所说的枚举常量(常量一般用大写)。
enum 变量类型还可以给其中的常量符号赋值,如果不赋值则会从被赋初值的那个常量开始
依次加1,如果都没有赋值,它们的值从0 开始依次递增1。
下面举个例子:如分别用一个常数表示不同颜
色
enum Color
{
GREEN = 1,
RED,
BLUE,
GREEN_RED骸= 10,
GREEN_BLUE
}ColorVal;
其中各常量名代表的数值分别为:
GREEN = 1
RED = 2
BLUE = 3
GREEN_RED = 10
GREEN_BLUE = 11
内容应该说的差不多了。
问题三:枚举是什么意思 “枚举窗口”、“枚举进程”之类的词中,枚举的意思就是遍历列举。这两个词也就是列举出所有的窗口场所有运行的进程的意思。作为一种数据结构,枚举用一组标识符来表示常数。
问题四:什么是枚举???? 枚举
1枚举 (enumeration)
值类型的一种特殊形式,它从 SystemEnum 继承,并为基础基元类型的值提供备用名称。枚举类型有名称、基础类型和一组字段。基础类型必须是一个内置的有符号(或无符号)整数类型(如 Byte、Int32 或 UInt64)。字段是静态文本字段,其中的每一个字段都表示常龚。所使用的语言给每个字段都分配一个基础类型的特定值。
2枚举(enum)
枚举是一个被命名的整型常数的 , 枚举在日常生活中很常见。
例如表示星期的SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY,
SATURDAY, 就是一个枚举。
枚举的说明与结构和联合相似, 其形式为:
enum 枚举名{
标识符[=整型常数],
标识符[=整型常数],
标识符[=整型常数],
} 枚举变量;
如果枚举没有初始化, 即省掉=整型常数时, 则从第一个标识符开始, 顺
次赋给标识符0, 1, 2, 。但当枚举中的某个成员赋值后, 其后的成员按依次
加1的规则确定其值。
例如下列枚举说明后, x1, x2, x3, x4的值分别为0, 1, 2, 3。
enum string{x1, x2, x3, x4}x;
当定义改变成:
enum string
{
x1,
x2=0,
x3=50,
x4,
}x;
则x1=0, x2=0, x3=50, x4=51
注意:
1 枚举中每个成员(标识符)结束符是,, 不是;, 最后一个成员可省略
,。
2 初始化时可以赋负数, 以后的标识符仍依次加1。
3 枚举变量只能取枚举说明结构中的某个标识符常量。
例如:
enum string
{
x1=5,
x2,
x3,
x4,
};
enum strig x=x3;
此时, 枚举变量x实际上是7。
3枚举(pascal)
随着计算机的不断普及,程序不仅只用于数值计算,还更广泛地用于处理非数值的数据。例如:性别、月份、星期几、颜色、单位名、学历、职业等,都不是数值数据。 在其它程序设计语言中,一般用一个数值来代表某一状态,这种处理方法不直观,易读性差。如果能在程序中用自然语言中有相应含义的单词来代表某一状态,则程序就很容易阅读和理解。也就是说,事先考虑到某一变量可能取的值,尽量用自然语言中含义清楚的单词来表示它的每一个值,这种方法称为枚举方法,用这种方法定义的类型称枚举类型。
问题五:java中枚举用来干什么的? 枚举是该类型的一个实例,相当于static final 类型的变量,可用于switch中,
枚举类:package goldentest;public enum Operation { /增/ INSERT, /删/ DELETE, /改/ UPDATE, /查/ QUERY}测试类package goldentest;public class TestEnum { public static void main(String[] args) { Systemoutprintln(OperationDELETE); Systemoutprintln(OperationvalueOf(DELETE)); Systemoutprintln(OperationvalueOf(DELETE)==OperationDELETE); Systemoutprintln(DELETEequals(OperationDELETEtoString())); switch (OperationDELETE) { case INSERT: /TODO/break; case DELETE: /TODO/Systemoutprintln(DELETE);break; case UPDATE:/TODO/break; case QUERY: /TODO/break; default: break; } }}
问题六:枚举值是什么意思 一、类型定义 类型定义的语法格式: type =; =; …… =; 二、枚举类型 通过预定义列出所有值的标识符来定义一个有序 ,这些值的次序和枚举类型说明中的标识符的次序是一致的。枚举类型的形式:(标识符1,……,标识符n) 例如: type daystype=(sunday,monday,tuesday,wednesday,thursday,friday,saturday) 枚举元素只能是标识符,而不能是数值常量或字符常量。例如以下的定义是错误的: type daystype=('sun','mon','tue','wed','thu','fri','sat') 枚举元素是标识符,不要把作为枚举元素的标识符视作变量名,它不能被赋值。同一个枚举元素不能出现在两个或两个以上的枚举类型定义中。例如以下的定义是错误的: type daytype1=(monday,tuesday); daytype2=(monday,wednesday); 可以将枚举类型的定义和变量的定义结合在一起。例如:var a:(monday,tuesday,sunday) 枚举类型属于顺序类型。根据定义类型时各枚举元素的排列顺序确定它们的序列,序列号从0开始 例如:已经定义daystype ord(sunday)=0,succ(sunday)=monday,pred(friday)=thursday 但是枚举类型中的第一个元素没有前趋,最后一个元素没有后继。Turbo Pascal不允许直接读写枚举值,所以枚举值的输出常用case语句间接的输出。枚举值的输入,则要一一判断读入字符是否是枚举类型的标识符。若是才能赋给枚举变量,否则就会出错。 例如:枚举值的输出 case day of sunday:write('sunday'); monday:write('monday'); tuesday:write('tuesday'); wednesday:write('wednesday'); thursday:write('thursday'); friday:write('friday'); saturday:write(功saturday'); end; 三、子界类型 子界类型是由整型、字符型、枚举型、布尔型的两个常量指定该类型的值域区间。子界类型的形式: 常量..常量 两个常量必须是同一种顺序类型。例如:a..b,要求a>
问题七:枚举是什么意思 一个一个数
问题八:c语言中的枚举型什么意思 如果一个变量只有几种可能的值,可以定义为枚举(enumeration)类型。所谓“枚举”是指将变量的值一一列举出来,变量的值只能在列举出来的值的范围内。声明枚举类型用enum开头。
例如
enum weekday{sun,mon,tue,wed,thu,fri,sat};
上面声明了一个枚举类型weekday,花括号中sun,mon,…,sat等称为枚举元素或枚举常量。
表示这个类型的变量的值只能是以上7个值之一。它们是用户自己定义的标识符。
问题九:到底什么叫做“枚举数” 枚举是一个被命名的整型常数的 , 枚举在日常生活中很常见。
例如表示星期的SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, 就是一个枚举。
枚举的说明与结构和联合相似, 其形式为:
enum 枚举名
{
标识符[=整型常数],
标识符[=整型常数],
标识符[=整型常数]
}
枚举变量;
如果枚举没有初始化, 即省掉=整型常数时, 则从第一个标识符开始, 顺次赋给标识符0, 1, 2, 。但当枚举中的某个成员赋值后, 其后的成员按依次加1的规则确定其值。
如定义:
public enum DayOfWeek
{
Monday = 1,
……
Sunday = 7
}
枚举类型enum的用法如下文所示:
枚举enum就是英文enumerate的缩写,也就是呢列举、排列说明的意思。枚举类型是C语言中的一种特殊类型,枚举类型可以让我们的程序使用一些固定长度和固定数值的变量值范围。定义枚举类型:enum 枚举类型 {枚举值列表};
1、定义枚举类型
2、如果在定义枚举类型时指定元素的值,也可以改变枚举元素的值
例如:
enum weekday{sun=7,mon=1,tue,wed,thu,fri,sat}day;
这时,sun 为 7,mon 为 1,以后元素顺次加 1,所以 sat 就是 6 了。
3、枚举值可以用来作判断
例如:
if (day==month) {…}
if (day>month) {…}
枚举值的比较规则是:按其在说明时的顺序号比较,如果说明时没有人为指定,则第一个枚举元素的值认作 0。
4、一个整数不能直接赋给一个枚举变量,必须强制进行类型转换才能赋值
对于一名优秀的程序员来说,面对一个项目的需求的时候,一定会在脑海里浮现出最适合解决这个问题的方法是什么,选对了算法,就会起到事半功倍的效果,反之,则可能会使程序运行效率低下,还容易出bug。因此,熟悉掌握常用的算法,是对于一个优秀程序员最基本的要求。
那么,常用的算法都有哪些呢?一般来讲,在我们日常工作中涉及到的算法,通常分为以下几个类型:分治、贪心、迭代、枚举、回溯、动态规划。下面我们来一一介绍这几种算法。
一、分治算法
分治算法,顾名思义,是将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之。
分治算法一般分为三个部分:分解问题、解决问题、合并解。
分治算法适用于那些问题的规模缩小到一定程度就可以解决、并且各子问题之间相互独立,求出来的解可以合并为该问题的解的情况。
典型例子比如求解一个无序数组中的最大值,即可以采用分治算法,示例如下:
def pidAndConquer(arr,leftIndex,rightIndex):
if(rightIndex==leftIndex+1 || rightIndex==leftIndex){
return Mathmax(arr[leftIndex],arr[rightIndex]);
}
int mid=(leftIndex+rightIndex)/2;
int leftMax=pidAndConquer(arr,leftIndex,mid);
int rightMax=pidAndConquer(arr,mid,rightIndex);
return Mathmax(leftMax,rightMax);
二、贪心算法
贪心算法是指在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。
贪心算法的基本思路是把问题分成若干个子问题,然后对每个子问题求解,得到子问题的局部最优解,最后再把子问题的最优解合并成原问题的一个解。这里要注意一点就是贪心算法得到的不一定是全局最优解。这一缺陷导致了贪心算法的适用范围较少,更大的用途在于平衡算法效率和最终结果应用,类似于:反正就走这么多步,肯定给你一个值,至于是不是最优的,那我就管不了了。就好像去菜市场买几样菜,可以经过反复比价之后再买,或者是看到有卖的不管三七二十一先买了,总之最终结果是菜能买回来,但搞不好多花了几块钱。
典型例子比如部分背包问题:有n个物体,第i个物体的重量为Wi,价值为Vi,在总重量不超过C的情况下让总价值尽量高。每一个物体可以只取走一部分,价值和重量按比例计算。
贪心策略就是,每次都先拿性价比高的,判断不超过C。
三、迭代算法
迭代法也称辗转法,是一种不断用变量的旧值递推新值的过程。迭代算法是用计算机解决问题的一种基本方法,它利用计算机运算速度快、适合做重复性 *** 作的特点,让计算机对一组指令(或一定步骤)进行重复执行,在每次执行这组指令(或这些步骤)时,都从变量的原值推出它的一个新值。最终得到问题的结果。
迭代算法适用于那些每步输入参数变量一定,前值可以作为下一步输入参数的问题。
典型例子比如说,用迭代算法计算斐波那契数列。
四、枚举算法
枚举算法是我们在日常中使用到的最多的一个算法,它的核心思想就是:枚举所有的可能。枚举法的本质就是从所有候选答案中去搜索正确地解。
枚举算法适用于候选答案数量一定的情况。
典型例子包括鸡钱问题,有公鸡5,母鸡3,三小鸡1,求m钱n鸡的所有可能解。可以采用一个三重循环将所有情况枚举出来。代码如下:
五、回溯算法
回溯算法是一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。
许多复杂的,规模较大的问题都可以使用回溯法,有“通用解题方法”的美称。
典型例子是8皇后算法。在8 8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问一共有多少种摆法。
回溯法是求解皇后问题最经典的方法。算法的思想在于如果一个皇后选定了位置,那么下一个皇后的位置便被限制住了,下一个皇后需要一直找直到找到安全位置,如果没有找到,那么便要回溯到上一个皇后,那么上一个皇后的位置就要改变,这样一直递归直到所有的情况都被举出。
六、动态规划算法
动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。
动态规划算法适用于当某阶段状态给定以后,在这阶段以后的过程的发展不受这段以前各段状态的影响,即无后效性的问题。
典型例子比如说背包问题,给定背包容量及物品重量和价值,要求背包装的物品价值最大。
以上就是关于使用枚举类型定义月份,并编写一个程序,根据用户输入的年份,输出该年各月的天数全部的内容,包括:使用枚举类型定义月份,并编写一个程序,根据用户输入的年份,输出该年各月的天数、枚举是什么、枚举类型enum用法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)