jw19521 @ 2024-12-17 17:55:02
#include <stdio.h>
int main(){
char a[14];
scanf("%s",a);
int sum=0,note,cnt=1;
for(int i=0;i<11;i++){
if(a[i]!='-'){
sum+=(a[i]-'0')*cnt;
cnt++;
}
}
note=sum%11;
if(note==10){
if(a[12]=='X'){
printf("Right");
}else{
a[12]='X';
printf("%s",a);
}
}else{
if(note==a[12]){
printf("Right");
}else{
a[12]=note+'0';
printf("%s",a);
}
}
return 0;
}
by JmBecca @ 2024-12-17 18:19:55
@jw19521 大哥你既然都知道a[12]跟note不相等的时候:
a[12]=note+'0';
那么比较的时候怎么就没有这样写呢?
a[12]是字符,而note是整数,所以即使看着匹配,但是还是会错
源代码:
if(note==a[12]){
printf("Right");
}
只要改成:
if(note+'0'==a[12]){
printf("Right");
}
就AC了
by jw19521 @ 2024-12-17 18:44:09
@JmBecca@JmBecca 犯蠢了,谢谢提醒