lanchenhao2010 @ 2022-08-08 09:04:33
崩溃了……
代码改了几十次都没过,IDE又卡爆了,无法测试。
有大佬能高抬贵手雪中送炭帮帮我吗【跪】?
附代码。
#include <iostream> //P1055 ISBN号码
#include <cstdio>
#include <cmath>
using namespace std;
int main(){
int a[9];
char p,m[15]="0123456789X";
scanf("%d-%d%d%d-%d%d%d%d%d-%c",&a[0],&a[1],&a[2],&a[3],&a[4],&a[5],&a[6],&a[7],&a[8],&p);
int rp = 0;
for(int i = 1;i <= 9;i++){
rp += i * a[i - 1];
}
rp %= 11;
if (p == m[rp]) printf("Right");
else printf("%d-%d%d%d-%d%d%d%d%d-%c",a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],m[rp]);
return 0;
}
by YDMaYi @ 2022-08-08 09:11:07
虽然我没看懂宁的代码,但是我可以给宁看看我的代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
char isbn[100];
cin>>isbn;
int num[10],result=0;
num[0]=isbn[0]-'0';
num[1]=isbn[2]-'0';
num[2]=isbn[3]-'0';
num[3]=isbn[4]-'0';
num[4]=isbn[6]-'0';
num[5]=isbn[7]-'0';
num[6]=isbn[8]-'0';
num[7]=isbn[9]-'0';
num[8]=isbn[10]-'0';
num[9]=isbn[12]-'0';
for(int i=0;i<9;i++)
{
result+=num[i]*(i+1);
}
result=result%11;
if(result<=9) {
if(result==num[9]) cout<<"Right";
else
{
isbn[12]=result+'0';
cout<<isbn;
}
}
else
{
if(isbn[12]=='X') cout<<"Right";
else
{
isbn[12]='X';
cout<<isbn;
}
}
return 0;
}
by shoot_down @ 2022-08-08 09:11:39
IDE又卡爆了有可能是RE
by shoot_down @ 2022-08-08 09:13:28
@lanchenhao2010 好像是scanf的问题,你换一下cin
by lanchenhao2010 @ 2022-08-08 09:18:11
感谢各位大佬,IDE正常了。 测试了一下,终于发现了问题。
附修改后的AC代码。```cpp
using namespace std; int main(){ int a[9]; char p,m[15]="0123456789X"; scanf("%1d-%1d%1d%1d-%1d%1d%1d%1d%1d-%c",&a[0],&a[1],&a[2],&a[3],&a[4],&a[5],&a[6],&a[7],&a[8],&p); //scanf格式符应用%1d。 int rp = 0; for(int i = 1;i <= 9;i++){ rp += i * a[i - 1]; } // cout << rp << endl; rp %= 11; // cout << rp << endl; if (p == m[rp]) printf("Right"); else printf("%d-%d%d%d-%d%d%d%d%d-%c",a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],m[rp]);
return 0;
}
by lanchenhao2010 @ 2022-08-08 09:21:11
代码糊在一块了,再发一遍。
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int main(){
int a[9];
char p,m[15]="0123456789X";
scanf("%1d-%1d%1d%1d-%1d%1d%1d%1d%1d-%c",&a[0],&a[1],&a[2],&a[3],&a[4],&a[5],&a[6],&a[7],&a[8],&p);
int rp = 0;
for(int i = 1;i <= 9;i++){
rp += i * a[i - 1];
}
// cout << rp << endl;
rp %= 11;
// cout << rp << endl;
if (p == m[rp]) printf("Right");
else printf("%d-%d%d%d-%d%d%d%d%d-%c",a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],m[rp]); // scanf格式符得用%1d。
return 0;
}