福明o7 @ 2021-10-09 22:05:57
用switch case 做的,莫名其妙50分
#include<bits/stdc++.h>
using namespace std;
string n;
int a,b,c,d,e,f,g,h,i;
int ans;
int sum;
int zb(int ans){
if (ans<9) return ans;
if (ans=88) return ans;
}
int main(){
getline(cin,n);
for (int j=0;j<=n.size();j++){
switch(j){
case 0:a=n[j]-'0';break;
case 2:b=n[j]-'0';break;
case 3:c=n[j]-'0';break;
case 4:d=n[j]-'0';break;
case 6:e=n[j]-'0';break;
case 7:f=n[j]-'0';break;
case 8:g=n[j]-'0';break;
case 9:h=n[j]-'0';break;
case 10:i=n[j]-'0';break;
case 12:{
ans=n[j];
if (ans<88) ans = ans-'0';
else ans = ans-0;
break;
}
}
}
sum = a*1+b*2+c*3+d*4+e*5+f*6+g*7+h*8+i*9;
sum%=11;
sum = zb(sum);
if (sum==ans) printf("%s","Right");
else{
ans = sum;
for (int j=0;j<=n.size();j++){
switch(j){
case 0:printf("%d",0);break;
case 1:printf("%c",'-');break;
case 2:printf("%d",b);break;
case 3:printf("%d",c);break;
case 4:printf("%d",d);break;
case 5:printf("%c",'-');break;
case 6:printf("%d",e);break;
case 7:printf("%d",f);break;
case 8:printf("%d",g);break;
case 9:printf("%d",h);break;
case 10:printf("%d",i);break;
case 11:printf("%c",'-');break;
case 12:{
if (ans<9) printf("%d",ans);
else printf("%c",ans);
break;
}
}
}
}
return 0;
}
求更改
by 天有不测风云 @ 2021-10-09 22:15:16
@福明o7 你这代码写的那叫一个奇怪啊
zb 函数改为:
int zb(int ans){
if (ans<=9) return ans;
if (ans==10) return 'X';
}
第 27 行的 else ans = ans-0;
可以删掉。
第 40 行改为 case 0:printf("%d",a);break;
。
by wjj255 @ 2021-10-09 22:16:14
第四十行应改为
case 0:printf("%d",a);break;
by wjj255 @ 2021-10-09 22:18:18
@天有不测风云 zb函数应该不影响运行吧
by 福明o7 @ 2021-10-09 22:20:50
关于我被一个a卡了两天这档事
过了,谢谢大佬
by 天有不测风云 @ 2021-10-09 22:25:19
@wjj255 看了半天,好像确实没有问题
这 zb 函数写得属实迷惑!!!这故意坑来调试的人吧……