我是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;
}
答案 0 :(得分:1)
所以您想要的数字是9,780,306,406,157,但是整数的最大值(可能是但具体取决于实现)为2,147,483,647。
将int
替换为unsigned long long
,它应该可以工作。
也将scanf("%1d", &isbn);
替换为scanf("%llu", &isbn);