‘1’-‘0’=1
char s[Max];int sum=0;
scanf("%s", s);
for(d = 0; d < s.length && s[d] >= '0' && s[d] <= '9'; d++)
sum += (ID[d] - '0') * (s.length-d);
例题:
#include <stdio.h>
int main() {
int N;
int weight[] = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2};//权值
char M[] = {'1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'};//z与M的对应值
char ID[18];
scanf("%d", &N);
int d, sum, count = 0;
for(int i = 0; i < N; i++) {
scanf("%s", ID);
for(d = 0, sum = 0; d < 17 && ID[d] >= '0' && ID[d] <= '9'; d++)
sum += (ID[d] - '0') * weight[d];
if(d == 17 && ID[17] == M[sum % 11])
count++;
else
printf("%s",ID);
}
if(count == N)
printf("All passed");
return 0;
}