Wwgan_ @ 2022-07-23 10:05:58
#include<bits/stdc++.h>
using namespace std;
char c,a[9999];
int n=1,cnt,k;
int main()
{
while((a[n]=getchar())!='\n')
n++;
for(int i=1;i<n-1;i++)
{
if(a[i]=='-') continue;
else if(a[i]>='0'&&a[i]<='9')
{
cnt+=(a[i]-'0')*k;
k++;
}
}
if(cnt%11==10) c='X';
else c=(cnt%11)+'0'-1;
if(c==a[n-1])
{
cout<<"Right\n";
return 0;
}
else a[n-1]=c;
for(int i=1;i<=n;i++)
cout<<a[i];
return 0;
}
但样例都是过的
by iiiiiyang @ 2022-07-23 10:12:07
读入问题
确定了长度为啥不一次性读完啊
by Kedit2007 @ 2022-07-23 10:23:45
因为实际的测试数据里并没有换行符,导致读到文件尾之后依旧在 getchar()
,引发运行时错误。
可以用 scanf("%s", a)
再结合 strlen
获取长度。
by AAA404 @ 2022-07-23 10:27:28
直接while(scanf("%c",&a[i])!=EOF)i++;不就行了还省一个strlen
by Pass1on_W @ 2022-07-23 10:32:38
while(cin>>a)
这样不行吗