將身份證前17位數字依次和以下17個數字相乘
(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2)
然後將所有的乘積相加對11取餘,根據餘數從以下11個數字中找到校驗碼
(1,0,x,9,8,7,6,5,4,3,2,1)
把校驗碼和身份證第18位比較,相同身份證為真,否則為假
#includeint main()
; char b=;
printf("請輸入您的身份證號碼:");
scanf("%lld",&id);
//將身份證逐位取出放在陣列arr中
for(i=0;i<18;i++)
for(i=0;i<17;i++)
sum%=11;
temp = b[sum]-'0'; //將字元轉換成數字存在temp中
if(temp==arr[17])
printf("身份確認成功!\n");
else
printf("身份確認失敗!\n");
return 0;
}
以上**存在乙個問題,當身份證最後一位為x時程式就會出錯,至於怎麼改,讀者可自行思考一下 js身份證精確認證
function checkidcard idcard var idcard,y,jym var s,m var idcard array new array idcard array idcard.split 地區檢驗 if area parseint idcard.substr 0,2 null...
重啟c語言 查驗身份證
乙個合法的身份證號碼由17位地區 日期編號和順序編號加1位校驗碼組成。校驗碼的計算規則如下 首先對前17位數字加權求和,權重分配為 然後將計算的和對11取模得到值z 最後按照以下關係對應z值與校驗碼m的值 z 012 3456 78910 m 10 x 987 6543 2現在給定一些身份證號碼,請...
1031 查驗身份證 C語言
乙個合法的身份證號碼由17位地區 日期編號和順序編號加1位校驗碼組成。校驗碼的計算規則如下 首先對前17位數字加權求和,權重分配為 然後將計算的和對11取模得到值z 最後按照以下關係對應z值與校驗碼m的值 z 012 3456 78910 m 10 x 987 6543 2現在給定一些身份證號碼,請...