题解 | [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数字字符与数字的转变