Как мне правильно - PullRequest
       14

Как мне правильно

0 голосов
/ 26 января 2019

Я новичок в программировании на C, и у меня есть задание, над которым я изо всех сил пытался работать.Мой вопрос заключается в том, что я хочу попросить пользователя ввести международный стандартный номер книги (ISBN), но если номер не соответствует 9780306406157, то это неверный номер ISBN.Я попробовал свой код, но по какой-то странной причине в любое время, если пользователь вводит 9780306406157, он выдает мне неверный номер ISBN, который неверен ... Вот мой код,

#include<stdio.h>
int main()
{
    int isbn;

    printf("Enter 13 digits of ISBN-13: ", isbn);
    scanf("%1d", &isbn);

    int isbn_13 = 9780306406157;

    if (isbn == isbn_13) 
    {
        printf("Valid ISBN number.");
    }

    else if (isbn != isbn_13) 
    {
        printf("Invalid ISBN number. ");
    }
    return 0;

}

1 Ответ

0 голосов
/ 26 января 2019

Таким образом, требуемое число составляет 9 780 306 406 157, но максимальное значение целого числа (вероятно, но зависит от реализации) 2 147 483 647.

Замените int на unsigned long long, и оно должно работать.

Также замените scanf("%1d", &isbn); на scanf("%llu", &isbn);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...