P1055 [NOIP2008 普及组] ISBN 号码
题目链接:https://www.luogu.com.cn/problem/P1055
这道题从题意上来说还是比较简单的,刚开始想用整形直接输入一个一个数字,没有想到scanf会直接把中间的三个数字连起来当成一个数字进行输入,所以还是要以字符的形式进行一个一个数字的输入。
#include <stdio.h>
int main ()
{
char a[11],ch;
scanf("%c-%c%c%c-%c%c%c%c%c-%c",&a[1],&a[2],&a[3],&a[4],&a[5],&a[6],&a[7],&a[8],&a[9],&a[10]);
int num=((a[1]-'0')*1+(a[2]-'0')*2+(a[3]-'0')*3+(a[4]-'0')*4+(a[5]-'0')*5+(a[6]-'0')*6+(a[7]-'0')*7+(a[8]-'0')*8+(a[9]-'0')*9)%11;//先算出正常的识别码是多少
if(num<10) ch=num+'0';//与10比较得出是数字还是X
else ch='X';
if(ch == a[10]) printf("Right");//然后进行比较再输出
else printf("%c-%c%c%c-%c%c%c%c%c-%c",a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],ch);
return 0;
}
标签:-%,洛谷,数字,号码,int,c%,ISBN,刷题
From: https://www.cnblogs.com/Jinx8823/p/16876252.html