a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C > 正文

枚舉類型的定義和應用總結

2020-01-26 15:44:10
字體:
來源:轉載
供稿:網友

定義:
如果一種變量只有幾種可能的值,可以定義為枚舉類型。所謂“枚舉類型”是將變量的值一一列舉出來,變量的值只能在列舉出來的值的范圍內。

聲明:
聲明枚舉類型用enum開頭,例如:

復制代碼 代碼如下:

enum weekday{sun,mon,tue,wed,thu,fri,sat};

上面聲明了一個枚舉類型weekday,花括號中的sun,mon,。。。。sat等稱為枚舉元素或枚舉常量。

這些枚舉常量,不會因為我們寫了sun就自動代表著“星期天”,它只是一個符號,究竟用來代表什么含義,完全卻決于程序員自己對它們的處理。


表示這個類型的變量的值只能是以上7個值之一,他們是用戶自己定義的標識符。

在聲明了枚舉類型之后,就可以用它開定義變量。如

復制代碼 代碼如下:

weekday workday,week_end;

這樣,workday和week_end被定義為枚舉類型weekday的變量。

說明:
(1)對枚舉元素按照常量處理,故稱為枚舉常量。它們不是變量,不能對他們賦值。

(2)枚舉元素作為常量,它們是有值的,C++編譯按定義時的順序對它們賦值為0,1,2,3,......

復制代碼 代碼如下:

#include<iostream>
using namespace std;
int main(){
 enum weekday{sun,mon,tue,wed,thu,fri,sat};
 weekday one;
 one=sun;
 cout<<one;
 cout<<endl;
}



我們也卡一在聲明枚舉類型時,另行指定枚舉元素的值,如
復制代碼 代碼如下:

#include<iostream>
using namespace std;
int main(){
 enum weekday{sun=7,mon=1,tue,wed,thu,fri,sat};
 weekday one,two;
 one=sun;
 two=wed;
 cout<<one<<endl;
 cout<<two<<endl;
 cout<<endl;
}


指定sun為7,mon為1,以后按順序加1,sat為6。

(3)枚舉值可以用來做比較。

枚舉值的比較規則是按其在聲明枚舉類型時的順序號比較。如果定義時未人為指定,則第一個枚舉元素的值認作0.

復制代碼 代碼如下:

#include<iostream>
using namespace std;
int main(){
 enum weekday{sun=7,mon=1,tue,wed,thu,fri,sat};
 weekday one,two;
 one=sun;
 two=wed;
        cout<<(sun>wed?sun:wed);
 cout<<endl;
}



(4)一個整數不能直接賦給一個枚舉變量,應先進行強制類型轉換才能賦值。
復制代碼 代碼如下:

#include<iostream>
using namespace std;
int main(){
 enum weekday{sun,mon,tue,wed,thu,fri,sat};
 weekday one;
 one=weekday(7);
 cout<<one;
 cout<<endl;
}



以上的語句是將序號為2的枚舉元素賦給one。相當于
復制代碼 代碼如下:

 one=sun;

一個例子:
口袋中有紅、黃、藍、白、黑5種顏色的球若干。每次從口袋中任意取出3個球,問得到3中不同顏色的球的可能取法,輸出每種排列的情況。

分析:球的顏色只有5種,每一個球的顏色只能是這5種之一,因此可以用枚舉類型變量來處理。

復制代碼 代碼如下:

/*******
設某一次取出的顏色為i,j,k。顯然,i,j,k都是以上5中顏色之一,根據題意,
要求i,j,k三者互不相同。可以用窮舉法,對每一種可能分別進行測試,看那一組符合條件
*****/
#include<iostream>
using namespace std;
int main(){
   enum color{red,yellow,blue,white,black};
   color pri;
   int i,j,k,n=0,loop;
   for(i=red;i<=black;i++){
    for(j=red;j<=black;j++)
     if(i!=j){
      for(k=red;k<=black;k++){
       if(k!=i&&k!=j){
        n++;//使n累加,統計可能的抽取情況
        cout<<n<<"/t";
        for(loop=0;loop<3;loop++){//通過循環,輸出該次i,j,k所對應的顏色
         switch(loop){
          case 0:pri=color(i);break;
          case 1:pri=color(j);break;
          case 2:pri=color(k);break;
         }
         switch(pri){
          case red:   cout<<"red/t";break;
          case yellow:cout<<"yellow/t";break;
          case blue:  cout<<"blue/t";break;
          case white: cout<<"white/t";break;
          case black: cout<<"black/t";break;
         }
        }
        cout<<endl;
       }
      }
    }
   }
   cout<<"total:"<<n<<endl;
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 国产中文字幕亚洲 | 韩国精品一区 | 国产成人综合在线 | 在线h观看| 国产精品成人品 | 操干网| 欧美天堂在线观看 | 国产小视频在线观看 | 精品三区| 久久二区三区 | 亚洲h网站 | 精品成人av| 久久草在线视频 | 噜噜噜在线 | 91视频污软件| 深夜福利1000| 成人av免费观看 | 中文字幕av一区二区三区 | 国产日韩精品一区二区 | 欧美久久a | 香蕉av777xxx色综合一区 | 不卡av电影在线观看 | 国产精品视频一区二区噜噜 | 亚洲一区不卡 | 永久黄网站色视频免费观看w | 欧美精品一区二区三区蜜桃视频 | 色人人| 天天操夜夜干 | 久久国产一区 | 男女视频免费 | 又黄又爽的网站 | 日韩视频免费在线观看 | 亚洲一区免费看 | 久久亚洲精品中文字幕蜜潮电影 | 日本黄色一级片视频 | 成人福利在线观看 | 国产精品v欧美精品v日韩 | 亚洲一区电影 | 91视频观看 | 九色网址 | 九九热精品视频 |