我正在创建一个C程序,用于测试用户是否输入了有效的SIN编号。以下是我到目前为止所做的事情:
#include <stdio.h>
int main(void) {
int num1;
printf("Enter your SIN number: \n");
scanf("%d", &num1);
}
SIN号是一个9位长的号码。为了查看它是否有效,我想将SIN数乘以这样:
add SIN number with 121 212 121.
123 456 789
121 212 121
我如何用C编程语言完成这部分工作?
答案 0 :(得分:0)
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int num1[9];
int vnum[9] = {1,2,1,2,1,2,1,2,1};
printf("Enter your SIN number(Hyphen(-) isn't included): \n");
for(int i = 0; i < 9; ++i){
if(1!=scanf("%1d", &num1[i])){//input one digit
fprintf(stderr, "invalid input\n");
exit(EXIT_FAILURE);
}
}
int sum = 0;
for(int i = 0; i < 9; ++i){
int mod, mul = num1[i] * vnum[i];
sum += mul > 9 ? ((mod = mul % 9) ? mod : 9) : mul;
}
if(sum % 10 == 0)
puts("valid");
else
puts("invalid");
return 0;
}