~~很简单~~如下:
```
#include<bits/stdc++.h>
using namespace std;
char s[20];
int main()
{
int ans;
scanf("%s",s);
ans=(s[0]-'0')*1+(s[2]-'0')*2+(s[3]-'0')*3+(s[4]-'0')*4+(s[6]-'0')*5+(s[7]-'0')*6+(s[8]-'0')*7+(s[9]-'0')*8+(s[10]-'0')*9;
ans=ans%11;
if(ans==10)
{
if(s[12]=='X')
{
printf("Right\n");
}
else
{
s[12]='X';
printf("%s\n",s);
}
}
else if(ans==s[12]-'0')
{
printf("Right\n");
}
else
{
s[12]=ans+'0';
printf("%s\n",s);
}
return 0;
}
```
by lizhengfei0824 @ 2024-01-09 13:41:18
`main` 函数第一行:`int i=1,n=0,x;`
`x` 需要赋值,改为:`int i=1,n=0,x=0;`
因为 `x` 没有赋值,直接进行运算,是 UB。
by RainPPR @ 2024-01-09 14:44:43
@[RainPPR](/user/371511) 谢谢大佬,已修改,但问题还是没有解决。
调试的过程中没有出现任何问题,查了一下也并没有什么数组越界的情况,就一直报错,折腾很长时间了
![](C:\Users\Administrator\Pictures)
by Chinami_Nagisa @ 2024-01-10 13:04:39
@[Chinami_Nagisa](/user/1152154) 即答:输入方式不对。
根本原因是本题输入格式中,最后一行不是换行。
因此你写的 `getchar()` 什么什么的 `!='\n'` 就不对了。
可以加一个 `!=EOF`,或者建议使用 `scanf` 或者 `cin` 输入。
我实测仅将第 8 行替换为 `scanf("%s",s);` 就可以 AC。
<https://www.luogu.com.cn/record/142416205>。
by RainPPR @ 2024-01-10 14:01:08
@[Chinami_Nagisa](/user/1152154) 有一个方法。
善用 Codeforces 的 Custom test 的 Clang 语言()
特别好用。在找 RE 的时候()
<https://codeforces.com/problemset/customtest>
by RainPPR @ 2024-01-10 14:02:01