7-63 查验身份证

#include<stdio.h>
int jy(char*s){
	int flag=0;int i;
	int weight[] = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2};
	char ZtoM[] = {'1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'};
	int sum=0;int k;
	for( i=0;i<17;i++){
		sum=sum+weight[i]*(s[i]-48);
	}
	k=sum%11;
	int m=ZtoM[k];
	if(m==s[17]){
		flag=1;
	}
	return flag;
}



int main (){
	int n;int i;int j;
	scanf("%d",&n);
	char s[n][19];
	for(i=0;i<n;i++){
		scanf("%s",s[i]);
	}
	int cnt=0;
	for(i=0;i<n;i++){
		int t=i;
		for(j=0;j<17;j++){
			
			if(s[i][j]=='X'){
				printf("%s\n",s[i]);
				cnt++;t++;
				break;
			}

			}
			
				if(jy(s[i])==0&&t==i){
					printf("%s\n",s[i]);
					cnt++;
				}
		}
	
	if(cnt==0){
		printf("All passed");
	}
	
	return 0;
}

猜你喜欢

转载自blog.csdn.net/michaelliu6/article/details/78621692