有没有大佬拯救50分的孩子!!!

P1055 [NOIP2008 普及组] ISBN 号码

- 所得的余数即为识别码,如果余数为 $10$,则识别码为大写字母 $ X$。
by zjjc1104111 @ 2024-02-24 11:51:01


@[zjjc1104111](/user/786714) 感谢大佬!!1
by LabmemNo_012LzTopic @ 2024-02-24 12:37:26


``` #include <stdio.h> #include <math.h> #include <stdlib.h> int main() { int a[10]={0}, ans, u = 0; char s[15]; scanf("%s", s);//输入ISBN号码 for (int i = 0; i < 13; i++) { ans = s[i] - 48; if (i < 12) { if (ans >= 0 && ans <= 9)a[u++] = ans; } else {//判断最后的识别码是否输入2个字符 if (s[14] == '\0')a[u] = ans * 10 + (s[i + 1] - 48); else a[u] = ans; } } u = 1; ans = 0; for (int i = 0; i < 9; i++) { ans += (a[i] * u++); } ans = ans % 11; if (a[9] == ans)printf("Right"); else { printf("%d-%d%d%d-%d%d%d%d%d-%d", a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], ans); } return 0; } ``` @[zjjc1104111](/user/786714)
by LabmemNo_012LzTopic @ 2024-02-24 13:40:39


@[zjjc1104111](/user/786714) 我这样改过后还是有问题
by LabmemNo_012LzTopic @ 2024-02-24 13:41:35


题目的意思是你最后算出的识别码可能会是10,你要把它换成X,不是给出的序列码中的识别码会有10
by yun123123 @ 2024-02-24 15:37:12


@[LabmemNo_012LzTopic](/user/1148832) 输出也要改成10
by zjjc1104111 @ 2024-02-25 20:07:45


该成x
by zjjc1104111 @ 2024-02-25 20:08:12


|