PAT乙級1031 查驗身份證

2021-10-02 19:27:19 字數 687 閱讀 7160

思路:

看題知意,按照題目意思模擬一下即可;

**如下,提交使用g++

#include

using

namespace std;

intmain()

;char check[11]

=;int n, count=

0, wsum;

string id;

cin >> n;

for(

int k=

1; k<=n; k++

)else

//否則這個id前17有不是數字的,標記後退出迴圈 }if

(flag)

//id前17位是數字,則繼續檢查校驗位

else

}else}if

(count==n)

printf

("all passed");

return0;

}

【debug過程】:全部通過的時候,all passed 沒有列印出來,隨即檢查,在程式中是以count(查驗通過)的數量是否等於n來做條件的,但是在一開始檢查每個id的時候,大迴圈是用的while(n–),這就導致了最後n必然等於0,從而導致最後判斷條件錯誤;【改用for迴圈,或者迴圈之前把n複製乙份】

PAT 乙級1031 查驗身份證(C語言)

1031 查驗身份證 15 分 乙個合法的身份證號碼由17位地區 日期編號和順序編號加1位校驗碼組成。校驗碼的計算規則如下 首先對前17位數字加權求和,權重分配為 然後將計算的和對11取模得到值z 最後按照以下關係對應z值與校驗碼m的值 z 012 3456 78910 m 10 x 987 654...

PAT乙級1031查驗身份證 15 分

乙個合法的身份證號碼由17位地區 日期編號和順序編號加1位校驗碼組成。校驗碼的計算規則如下 首先對前17位數字加權求和,權重分配為 然後將計算的和對11取模得到值z 最後按照以下關係對應z值與校驗碼m的值 z 012 3456 78910 m 10 x 987 6543 2現在給定一些身份證號碼,請...

PTA乙級1031,查驗身份證

分析 設定乙個istrue函式判斷身份證號是否正常,如果不正常返回false。判斷每乙個給出的身份證號,如果不正常,就輸出這個身份證號,並且置flag 1表示有不正常的號碼 如果所有的號碼都是正常,即flag依舊等於0,則輸出all passed 在istrue函式中,先判斷前17位是否是數字,如果...