0分求助,给的例子自己试的全过,输入输出格式正确

P1055 [NOIP2008 普及组] ISBN 号码

~~不知道你样例是怎么过的,可能是凑巧吧~~ ### 先说最重要的问题:s在计算时会把最后一个数也加进去 **解决方法:s加的时候再加个判断就行** ```c if(a[i]!='-'&&i!=12) { b=a[i];b-=48; s=s+b*e; e++; } ``` **其他问题:e变量是从1开始乘的,s的初始值也要设一下** ```c char a[13];int b,s=0,e=1,c; ``` 问题就这些,改完即可AC ```c #include<iostream> using namespace std; int main () { char a[13];int b,s=0,e=1,c; for(int i=0;i<13;i++) cin>>a[i]; for(int i=0;i<13;i++) { if(a[i]!='-'&&i!=12) { b=a[i];b-=48; s=s+b*e; e++; } if(i==12&&a[12]!='X') { c=a[i];c-=48; } if(i==12&&a[12]=='X') { c=10; } } e=s%11; if(e==c) cout<<"Right"<<endl; else { for (int i=0;i<12;i++) cout<<a[i]; if(e!=10) cout<<e<<endl; else cout<<'X'<<endl; } return 0; } ``` ~~我也蒟蒻,说错请改正~~
by zhang_feng_rui @ 2023-10-29 12:15:35


@[zhang_feng_rui](/user/1061189) ~~我蒟蒻的哎~~ ``` cpp if(a[i]!='-') { int b=a[i];b-=48; s=s+b*e; e++; } if(i==12&&a[12]!='X') { int c=a[i];c-=48; } if(i==12&&a[12]=='X') { int c=10; } ``` ## 为啥要去掉里面的几个: ```cpp "int" ``` ~~答:不去有错的~~
by lanyaohhh @ 2023-10-29 22:04:53


|