- 註冊時間
- 2014-6-28
- 最後登錄
- 2021-10-25
- 主題
- 查看
- 積分
- 6
- 閱讀權限
- 15
- 文章
- 5
- 相冊
- 0
- 日誌
- 0
狀態︰
離線
|
請使用陣列撰寫一個C++程式能讓使用者輸入身分證號碼,然後檢查並顯示此身份證號碼是否合法。
(1)本國身份證號碼共10碼,第1碼為英文,其餘為數字,其中最右邊的數字為檢查碼
(2)以下的英文代號所代表的轉換數字:
A=10 台北市 J=18 新竹縣 S=26 高雄縣 B=11 台中市 K=19 苗栗縣 T=27 屏東縣
C=12 基隆市 L=20 台中縣 U=28 花蓮縣 D=13 台南市 M=21 南投縣 V=29 台東縣
E=14 高雄市 N=22 彰化縣 W=32 金門縣 F=15 台北縣 O=35 新竹市 X=30 澎湖縣
G=16 宜蘭縣 P=23 雲林縣 Y=31 陽明山 H=17 桃園縣 Q=24 嘉義縣 Z=33 連江縣
I=34 嘉義市 R=25 台南縣
(3)身份證檢查時要將英文轉成數字,再將轉換後的數字其個位數乘9,再加上十位數
(4)左邊前八個數字,分別乘以8、7、6、5...1
(5)求出(3),(4)的和
(6)求出(5)除10後之餘數,再用10減該餘數,如果結果的個位數與檢查碼相同,則號碼正確
例如: 身分證字號 A123456789 可分為三部份 A 12345678 9
A:10 -> 1*1+0*9 = 1(第1部份)
12345678->1*8+2*7+3*6+4*5+5*4+6*3+7*2+8*1=120 (第2部份)
(第1部份)+(第2部份)=1+120=121
10-(121%10)=9 與最後一碼檢查碼相同,因此此號碼為合法的編號
(7)使用者輸入身份證號碼長度多於10碼或少於10碼,應顯示錯誤訊息
利用C語言做題使用陣列與迴圈
有做出來一些些但怪怪ㄉ
拜託大師解答 |
|