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

全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 13:47
点赞 评论 收藏
分享
06-26 15:33
青岛工学院 Java
积极的秋田犬要冲国企:他现在邀请我明天面试
点赞 评论 收藏
分享
asdasdasda...:19岁,不容易啊可能升个本会好点,现在学历歧视太严重了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务