我是 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;
}
最佳答案
因此,您想要的数字是 9,780,306,406,157,但整数的最大值是(可能,但具体实现)2,147,483,647。
将int
替换为unsigned long long
,它应该可以工作。
同时将 scanf("%1d", &isbn);
替换为 scanf("%llu", &isbn);
关于c - 我该如何正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54375544/