为什么不能这样写,大佬求带

P1055 [NOIP2008 普及组] ISBN 号码

zxhiding @ 2022-10-11 13:16:51

#include<stdio.h>
int main(){
    int a, b, c, d, e, f, g, h, i, j;
    scanf("%d-%d%d%d-%d%d%d%d%d-%d", &a, &b, &c, &d, &e, &f, &g, &h, &i, &j);
    int k = (a * 1 + b * 2 + c * 3 + d * 4 + e * 5 + f * 6 + g * 7 * h * 8 + i * 9)%11;
    if (k == j) {
        printf("Right");
    }
     if(k==10) {
        printf("X");
    }if (k != 10 && k != j) {
        printf("%d", k);
    }
    return 0;
}

by w9095 @ 2022-10-11 13:25:29

最好用字符串存原始数据


by w9095 @ 2022-10-11 13:25:49

@zxhiding


by zxhiding @ 2022-10-11 14:37:12

@w9095 但是我输入的都是数字,为什么不能这样写


by w9095 @ 2022-10-11 16:00:19

@zxhiding 有一组数据输入是结尾为X


by 8672438ff @ 2022-10-12 22:51:56

@w9095 那个改了也还是报错 为什么啊


by UTAsriel @ 2022-10-17 16:48:30

第一个if语句结束之后加上else,否则不管是对是错,它都会再输出一个ISBN码。


by UTAsriel @ 2022-10-17 16:49:54

而且它不是要求你输出正确ISBN码的末位,而是整个ISBN码。


by UTAsriel @ 2022-10-17 16:52:51

报错的话,你的第一和第三个if语句好像用的是全角(中文)括号。


by UTAsriel @ 2022-10-17 16:54:00

如果你是加了空格,那么忽略请我的第三句话。


|