SOGO論壇
標題:
身分證問題
[列印本頁]
作者:
KSJOU
時間:
2014-11-26 00:56:06
標題:
身分證問題
請使用陣列撰寫一個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語言做題
使用陣列與迴圈
有做出來一些些但怪怪ㄉ
拜託大師解答
作者:
superepc
時間:
2014-11-26 01:19:38
怪在哪裡呢??
是程式碼有error不能跑,
還是跑出來不如預期,還是跑到一半會崩潰?
貼上程式碼讓大家看看吧
作者:
mikekao
時間:
2015-2-26 17:11:00
試著把那些英文字放在陣列內,並把每個英文各自對應的數字也放在另一陣列內(當然可合成1個陣列,用struct), 接著只要處理字串就可以驗證或產生身份證字號了喲。加油!
歡迎光臨 SOGO論壇 (https://oursogo.com/)
Powered by OURSOGO.COM