90分求助第一个错了

P1055 [NOIP2008 普及组] ISBN 号码

jw19521 @ 2024-12-17 17:55:02

90分求助第一个点错了

#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 犯蠢了,谢谢提醒


|