题解 P1055 【ISBN号码】
蒟蒻的第一篇题解
因看到小k同学的题解 中使用了不安全的gets()和puts()
本蒻出于好奇,做了测试,结果如下:
于是...我决定对他的代码进行优化, 我使用了scanf("%s",a)和printf("%s",a)替换.(代码已测试,全AC)
值得注意:
在C/C++中以字符串末尾有不可见'\0',所以开数组存储字符的时候一定要多+1位留给计算机自动补'\0';
- p.s.:此代码是优化代码非原创
- 若有问题请私信我,
- 欢迎神犇指导
- 愿意接受大佬的批评
#include<iostream> using namespace std; int main(){ char a[14],mod[12]="0123456789X"; scanf("%s",a); /* for(int i=0;i<12;i++){ cin>>a[i]; } */ int i,j=1,t=0; for(i=0;i<12;i++){ if(a[i]=='-') continue; t+=(a[i]-48)*j++; } if(mod[t%11]==a[12]) cout<<"Right"; else{ a[12]=mod[t%11]; printf("%s",a); /*for(int i=0;i<13;i++){ cout<<a[i]; } */ } return 0; }