题解 | [NOIP2008]ISBN号码
#include <stdio.h> int main() { int i,sum=0,count=1; char arr[13]; scanf("%s",arr); for(i=0;i<12;i++) { if(arr[i]>='0'&&arr[i]<='9') { sum=sum+count*(arr[i]-'0'); count++; } } if(sum%11==arr[12]-'0'||sum%11==10&&arr[12]=='X') { printf("Right"); } else if(sum%11!=arr[12]-'0'&&sum%11==10) { for(i=0;i<12;i++) { printf("%c",arr[i]); } printf("X"); } else { arr[12]=sum%11+'0'; for(i=0;i<13;i++) { printf("%c",arr[i]); } } return 0; }
注意点:
1.使用%s把序列全部输出,我一开始是一个一个输出,导致结果出现错误
2.sum%11==10题目要求识别码是‘x’注意看题目;
3.打印过程要注意识别码的打印
4.用一个数组把序列存起来比较容易
5.ascll数字字符与数字的转变