CCF-CSP 201312-2 ISBN号码 C语言 满分

CCF-CSP 201312-2 ISBN号码 C语言 满分,第1张

#include

int main(){
	int a, b, c, i;
	char d;
	int b1, c1, d1;
	scanf("%d-%d-%d-%c", &a, &b, &c, &d);

	if(d>=48 && d<= 57) d1 = d - 48;
	else d1 = d - 78;//将X转化为数字,以表示10 

	int sum = 0;
	b1 = b;
	sum += a;
	
	for(i=2; i<=4; i++){
		sum += (b / 100) * i;
		b -= (b / 100) * 100;
		b *= 10;
	}

	c1 = c;
	for(i=5; i<=9; i++){
		sum += (c / 10000) * i;
		c -= (c / 10000) * 10000;
		c *= 10;
	}
	
	if(sum%11 == d1) {
		printf("Right");
	}else{
		if(sum%11 == 10) printf("%d-%d-%d-X", a, b1, c1);
	 	else printf("%d-%d-%d-%d", a, b1, c1, sum%11);
	}
	return 0;
}

1.利用ASCII将X转为数字。

2.记录各项与i乘积之和。

代码冗杂,还有更好的方法。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/2991109.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-09-23
下一篇 2022-09-23

发表评论

登录后才能评论

评论列表(0条)

保存