[c语言中的数组排序]#include #include int numSort(int *a,int count_num) { int i,j,min=-1,temp; for(j=count_num-1;j>0;j--) for(i=j-1;i>=0;i--) if(a[j] > a[i]) { temp=a[i]; a[i]=a[j]...+阅读
C语言中关于枚举类型
1.enum 枚举的定义
枚举类型定义的一般形式为:
enum 枚举名{ 枚举值表 };在枚举值表中应罗列出所有可用值。这些值也称为枚举元素。
例如:
该枚举名为weekday,枚举值共有7个,即一周中的七天。凡被说明为weekday类型变量的取值只能是七天中的某一天。
2. 枚举变量的说明
如同结构和联合一样,枚举变量也可用不同的方式说明,即先定义后说明,同时定义说明或直接说明。
设有变量a,b,c被说明为上述的weekday,可采用下述任一种方式:
enum weekday{ sun,mou,tue,wed,thu,fri,sat };
enum weekday a,b,c;或者为:
enum weekday{ sun,mou,tue,wed,thu,fri,sat }a,b,c;或者为:
enum { sun,mou,tue,wed,thu,fri,sat }a,b,c;3、枚举类型变量的赋值和使用
枚举类型在使用中有以下规定:
a. 枚举值是常量,不是变量。不能在程序中用赋值语句再对它赋值。
例如对枚举weekday的元素再作以下赋值:
sun=5;
mon=2;
sun=mon;都是错误的。
b. 枚举元素本身由系统定义了一个表示序号的数值,从0开始顺序定义为0,1,2…。如在weekday中,sun值为0,mon值为1,…,sat值为6。
int main(){
enum weekday
{ sun,mon,tue,wed,thu,fri,sat } a,b,c;
a=sun;
b=mon;
c=tue;
printf("%d,%d,%d",a,b,c);
return 0;
}说明:
只能把枚举值赋予枚举变量,不能把元素的数值直接赋予枚举变量。如:
a=sum;
b=mon;是正确的。而:
a=0;
b=1;是错误的。如一定要把数值赋予枚举变量,则必须用强制类型转换。
如:a=(enum weekday)2;
其意义是将顺序号为2的枚举元素赋予枚举变量a,相当于:
a=tue;
还应该说明的是枚举元素不是字符常量也不是字符串常量,使用时不要加单、双引号。
int main(){
enum body
{ a,b,c,d } month[31],j;
int i;
j=a;
for(i=1;i<=30;i++){
month[i]=j;
j++;
if (j>d) j=a;
}
for(i=1;i<=30;i++){
switch(month[i])
{
case a:printf(" %2d %c\t",i,'a'); break;
case b:printf(" %2d %c\t",i,'b'); break;
case c:printf(" %2d %c\t",i,'c'); break;
case d:printf(" %2d %c\t",i,'d'); break;
default:break;
}
}
printf("\n");
return 0;
}
给个枚举类型的程序
#include
/* 定义枚举类型 */
enum DAY { MON=1, TUE, WED, THU, FRI, SAT, SUN };
void main()
{
/* 使用基本数据类型声明变量,然后对变量赋值 */
int x, y, z;
x = 10;
y = 20;
z = 30;
/* 使用枚举类型声明变量,再对枚举型变量赋值 */
enum DAY yesterday, today, tomorrow;
yesterday = MON;
today = TUE;
tomorrow = WED;
printf("%d %d %d \n", yesterday, today, tomorrow);
}
什么是c语言里面的枚举类型
枚举是用标识符表示的整型常数集合,这些常数是该类型变量可取的合法值,这些标识符称为枚举常量。
定义:enum<;枚举名>{<;标识符1>,<;标识符2>...<;标识符n>};
比如enum weekday{sun,mon,tue};
就表示定义了3个枚举型常量,默认他们的值是从0开始,依次递增,也就是sum=0,mon=1,tue=2
你也可以直接给他们赋值,比如enum weekday{sun=1,mon,tue};
如果这样的话mon的值就为2,tue的值就为3.
你也可以用其他变量代替枚举常量的值,比如
enum weekday{sun,mon,tue}a,b,c;
a=sun;
b=mon;
c=tue;
如果输出的话a=0,b=1,c=2
c语言解释一下枚举类型
如果枚举没有初始化, 即省掉"=整型常数"时, 则从第一个标识符开始, 顺
次赋给标识符0, 1, 2, ...。但当枚举中的某个成员赋值后, 其后的成员按依次
加1的规则确定其值。
例如下列枚举说明后, x1, x2, x3, x4的值分别为0, 1, 2, 3。
enum Num{x1, x2, x3, x4}x;
当定义改变成:
enum Num
{
x1,
x2=0,
x3=50,
x4
}x;
则x1=0, x2=0, x3=50, x4=51
注意:
1. 枚举中每个成员(标识符)结束符是",", 不是";", 最后一个成员可省略
","。
2. 初始化时可以赋负数, 以后的标识符仍依次加1。
3. 枚举变量只能取枚举说明结构中的某个标识符常量。
例如:
enum Num
{
x1=5,
x2,
x3,
x4
};
enum Num x=x3;
此时, 枚举变量x实际上是7。
延伸阅读:
C语言中数组的排序方法中选择排序的原理是,每次从待排序数字中挑选出最大(最小)数字,放在有序序列的末尾。实际操作中,只需要在这个数组中将挑出来的数字与前面的数字交换即可。 例如: 4 1 5 2 3 找到最小...
关于C语言的问题实型变量分为两类:单精度型和双精度型, 其类型说明符为float 单精度说明符,double 双精度说明符。在Turbo C中单精度型占4个字节(32位)内存空间,其数值范围为3.4E-38~3.4E+38,只能...
软件开发需要学会什么技术 VB C语言 C语言还有什么啊首先、你什么都别问,问多了,反而迷茫,不知所措,你现在就开始学习C或C++,相信我!不相信的话,你问过,他们还是让你开始学C,你在学的过程中,你会找到自己的方向,你会知道,你改干什么? 补充一...
没学过C语言可以学C语言数据结构与算法吗你好 一点小建议希望能对你有帮助 (1)学算法 学习算法和具体的语言还是有一定的联系,比如说你的算法最后要用c语言来实现,因为c是面向过程的,所以这和用面向对象的语言如c++来实...
C语言数据结构与算法分析C语言描述Position不是一个类型,起码C语言中,我写那么多年代码没见过这个类型 。你该把整段代码贴上来。我猜你看的那段代码是伪代码,Position是自定义类型。若Position是类名,那么Positi...
C语言中逻辑运算符的规则是什么逻辑运算符把各个运算的变量(或常量)连接起来组成一个逻辑表达式。逻辑运算符有4个,它们分别是: !(逻辑非)、 ||(逻辑或)、&(逻辑与) ^(异或)。在位运算里面还有 &(位与)、|(位或)的运算。什...
关于c语言题目关于c语言题目,c语言的简单题目:这个程序的意图是这样的: 开始-----while (*str && *str!=ch) str++;(解释:判断指针str是否为空,同时如果指针str指向的内容!=ch时,指针往下走一个,直...
C语言中运算符优先级排序C语言中运算符优先级排序,C语言中算术运算符的优先级是高于还是低于赋值运算符:1级优先级 左结合() 圆括号 [] 下标运算符 ->指向结构体成员运算符 . 结构体成员运算符 2级优先...
c语言中的extern怎么用c语言中的extern怎么用,C语言中extern的用法:extern在c中就是个外部申明,因为C是先申明再使用,当你想调用的变量或者函数不在你的模块当中,你可以使用外部申明。在使用外部申明的...