1031 查验身份证

#include <cstdio>

int height[17]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
char M[11]={'1','0','X','9','8','7','6','5','4','3','2'};
char s[18];
int isnum(char n){
    if(n-'0'>=0&&n-'0'<=9) return 1;
    else return 0;
}
int isn=1;
int isright(){
    int sum=0;isn=1;
    for(int i=0;i<17;i++){
        scanf("%c",&s[i]);
        if(!isnum(s[i])) isn=0;
        sum+=(s[i]-'0')*height[i];
    }
    scanf("%c\n",&s[17]);
    if(s[17]==M[(sum%11)]) return 1;
    else return 0;
}
int main()
{
    //freopen("C:\\Users\\pc\\Desktop\\use.txt","r",stdin);

    int n;int num=0;
    scanf("%d\n",&n);
    while(n--){
        if(isright()==0||isn==0){
            num++;
            for(int i=0;i<18;i++){
                printf("%c",s[i]);
            }
            printf("\n");
        }
    }
    if(num==0) printf("All passed");
    return 0;
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容