#include<stdio.h>
int main()
{
char a[13] = {'\0'};
int b[9] = {0}, count = 0, sum = 0, tag;
for(int i = 0; i < 13; i++)
{
scanf("%c", &a[i]);
if(a[i] >= '0' && a[i] <= '9' && count < 9)
b[count++] = a[i] - '0';
}
for(int i = 0; i < 9; i++)
sum += b[i] * (i + 1);
tag = sum % 11;
if(tag == 10)
if(a[12] == 'X')
printf("Right");
else
{
a[12] = 'X';
for(int i = 0; i < 13; i++)
printf("%c", a[i]);
}
else if(tag == a[12] - '0')
printf("Right");
else
{
a[12] = tag + '0';
for(int i = 0; i < 13; i++)
printf("%c", a[i]);
}
return 0;
}
CCF认证 - 201312-2 - ISBN号码 (C语言代码实现)(100分)
最新推荐文章于 2024-07-09 16:14:09 发布
本文介绍了一个C语言程序,用于计算和验证ISBN-10校验码。程序读取10位数字和最后一位校验码,通过特定算法计算校验码,并对比输入的校验码进行验证。如果输入的校验码正确,输出Right;如果不正确,则输出正确的校验码。
(100分)&spm=1001.2101.3001.5002&articleId=88601753&d=1&t=3&u=a05ef2d49cc344dbb935fd84719ebb2e)
3787

被折叠的 条评论
为什么被折叠?



