这怎么WA啊,蒟蒻求助

P1055 [NOIP2008 普及组] ISBN 号码

```cpp #include <bits/stdc++.h> using namespace std; int main() { char a[100]; scanf("%c-%c%c%c-%c%c%c%c%c-%c", &a[0], &a[1], &a[2], &a[3], &a[4], &a[5], &a[6], &a[7], &a[8], &a[9]); int sum = 0,remainder; char ch; for (int i = 0; i < 9; i++) { sum += (a[i] - '0') * (i + 1); } remainder = sum % 11; if (remainder == 10) ch = 'X'; else ch = remainder + '0'; if (ch == a[9]) printf("Right\n"); else printf("%c-%c%c%c-%c%c%c%c%c-%c\n", a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], ch); return 0; }
by AlexSong @ 2023-08-27 16:25:29


# AC代码(自己看看吧,找不出错) ```cpp #include<bits/stdc++.h> using namespace std; int main() { string a; int s=0,n1,n2,b,k=1; cin>>a; for(int i=0;i<12;i++) { if(a[i]=='-') continue; else { b=a[i]-'0'; s=s+b*k; k++; } } n1=a[12]-'0'; n2=s%11; if(n1==n2||(n2==10&&a[12]=='X')) cout<<"Right"; else { for(int i=0;i<12;i++) cout<<a[i]; if(n2==10) { cout<<'X'; } else { cout<<n2; } } return 0; } ```
by oier04 @ 2023-08-27 16:42:09


是你的**退格**导致的 测评机会把**退格**当成输出 所以,你在输出中不能使用/b。 这是修改后的代码(修改的地方已注释) ```cpp /*#include<bits/stdc++.h> using namespace std;*/ int main(){ char s[20]; scanf("%s",s); int cur = 1,sum=0,m; for(int i = 0; i < strlen(s)-2; i++){ if(s[i]!='-'){ sum+=(s[i]-'0')*cur; cur++; } } int t; if(s[strlen(s)-1]=='X') t=10; else t = s[strlen(s)-1]-'0'; m=sum%11; if(m==t)printf("Right"); /*else { if(m==10){ for(int i=0;i<=11;i++) cout<<s[i]; cout<<"X"; } else{ for(int i=0;i<=11;i++) cout<<s[i]; cout<<m; }*/ } return 0; } ``` ![](https://cdn.luogu.com.cn/upload/image_hosting/ge581tp7.png)修改后的代码已AC 附上我自己的屎山代码: ```cpp #include<bits/stdc++.h> using namespace std; int main(){ char a[15]; for(int i=1;i<=13;i++){ cin>>a[i]; } int sr[11]={0}; sr[1]=(int)a[1]-48; int j=2; for(int i=3;i<=5;i++){ sr[j]=(int)a[i]-48; j++; } for(int i=7;i<=11;i++){ sr[j]=(int)a[i]-48; j++; } sr[10]=(int)a[13]-48; int sbm=0; for(int i=1;i<=9;i++){ sbm+=(sr[i]*i); } sbm=sbm%11; if((sbm==sr[10])||(sbm==10&&a[13]=='X')) cout<<"Right"; else{ for(int i=1;i<=12;i++) cout<<a[i]; if(sbm==10) cout<<"X"; else cout<<sbm; } return 0; } ```
by wuyinan @ 2023-08-27 17:35:25


抱歉是\b
by wuyinan @ 2023-08-27 17:46:07


感谢大佬们
by yizhidashayu @ 2023-08-27 18:02:55


|