Lindafish @ 2024-01-31 14:11:00
#include <stdio.h>
int main ( )
{
int c1,c2,c3,c4,c5,c6,c7,c8,c9,c10;
char z1,z2,z3;
scanf("%d%c%d%d%d%c%d%d%d%d%d%c%d",&c1,&z1,&c2,&c3,&c4,&z2,&c5,&c6,&c7,&c8,&c9,&z3,&c10);
int answer;
answer=(c1*1+c2*2+c3*3+c4*4+c5*5+c6*6+c7*7+c8*8+c9*9)%11;
if (answer==c10||(answer==10&&c10=='X')){
printf("Right");
}else {
printf("%d%c%d%d%d%c%d%d%d%d%d%c%d",c1,z1,c2,c3,c4,z2,c5,c6,c7,c8,c9,z3,answer);
}
return 0;
}
虽然代码确实丑但是我感觉理论上行得通啊,还是说必须用数组吗?
by a1co0av5ce5az1cz0ap_ @ 2024-01-31 14:18:53
@Lindafish c10 是字符,ans 是数字,0 到 9 的时候不能直接判断,c10 要变为 c10-48
by luuia @ 2024-01-31 14:20:28
@ACaCaca_ c10就是数字吧
by a1co0av5ce5az1cz0ap_ @ 2024-01-31 14:22:45
@luuia 草我没看见,那这个时候是 X 不就没法输入了
by luuia @ 2024-01-31 15:01:39
X会读成88之后的判断也没问题吧。。
by wangderui111 @ 2024-02-04 14:08:59
#include<bits/stdc++.h>
using namespace std;
int main(){
int a[9],e=0,b1;
char c[3],b;
string d;
cin>>d;
a[0]=d[0]-'0';
a[1]=d[2]-'0';
a[2]=d[3]-'0';
a[3]=d[4]-'0';
a[4]=d[6]-'0';
a[5]=d[7]-'0';
a[6]=d[8]-'0';
a[7]=d[9]-'0';
a[8]=d[10]-'0';
c[1]=d[1];
c[2]=d[5];
c[3]=d[11];
b=d[12];
for(int i=1;i<10;i++){
e+=a[i-1]*i;
}e%=11;
if(b=='X'){
b1=10;
}else{
b1=b-'0';
}if(e==b1){
cout<<"Right";
}else{
for(int i=0;i<12;i++){
cout<<d[i];
}if(e==10){
cout<<"X";
}else{
cout<<e;
}
}
return 0;
}
用我这个,别告我
by wangderui111 @ 2024-02-04 14:10:11
还有,兄弟你没用 ``` using namespace std;
by Retana @ 2024-02-15 14:59:30
@wangderui111 不懂就问,这个减'0'是什么原理,单引号下面不是字符串吗
by mamutian2011 @ 2024-02-15 21:34:04
@Retana -‘0’表示-48,就减去0的ASCLL值,将字符数字转为int型数字
by Retana @ 2024-02-16 15:42:35
@mamutian2011 谢谢!