c语言 - 为什么我仍然收到"expected identifier"错误?



我是编程新手(目前正在学习C并与cs50x课程一起工作(。我正在做问题集 1,卡片。我应该制作一个程序,你输入一个信用卡号,它给你信用卡的类型(美国运通卡,签证等(。我需要有关此错误的帮助:"错误:预期的标识符或"(">
这是代码:

#include <stdio.h>
#include <cs50.h>
void print_credit_card_brand(long long ccn);
bool check_validity(long long credit_card_number);
int find_lenght(long long n);
bool checksum(long long ccn);
int main(void)
{
long long credit_card_number;
do
{
credit_card_number = get_long_long("Number: n");
}
while (credit_card_number < 0);
if (check_validity(credit_card_number) == true)
print_credit_card_brand(credit_card_number);
else
printf ("INVALIDn");
}
bool check_validity(long long credit_card_number);
{
int len = find_lenght(credit_card_number);
return (len = 13 || len = 15 || len = 16) && checksum(credit_card_number);
}
int find_lenght(long long n);
{
int len;
for (int len = 0; n ! = 0; n/=10, len++)
return len;
}
bool checksum(long long ccn);
{
int sum = 0;
for (int i = 0; ccn!= 0; i++; ccn/= 10)
{
if(i % 2 == 0)
sum += ccn % 10;
else
{
int digit = 2 * (ccn % 10);
sum += digit / 10 + digit % 10;
}
return (sum % 10) == 0;
}
}
void print_credit_card_brand(long long ccn);
{
if ((ccn >= 34e13 && ccn < 32e13) || (ccn >= 37e13 && ccn < 38e13))
printf ("AMEXn");
else if (ccn >= 51e14 && ccn < 56e14)
printf("MASTERCARDn");
else if ((ccn >= 4e12 && ccn < 5e12) || (ccn >= 4e15 && ccn < 5e15))
printf("VISAn");
else printf("INVALIDn");
}

在此处删除分号。 :D

bool check_validity(long long credit_card_number);   <--------
{
int len = find_lenght(credit_card_number);
return (len = 13 || len = 15 || len = 16) && checksum(credit_card_number);
}
int find_lenght(long long n);   <---------
.
.
.

你的代码中有一些拼写错误:

每个函数定义在末尾都有一个额外的;,将它们全部删除。

bool checksum(long long cc);
{                          ^
//...
}

这个:

return (len = 13 || len = 15 || len = 16) && checksum(credit_card_number);`
^           ^           ^

你可能想要==.


这:

for (int i = 0; ccn!= 0; i++; ccn/= 10)
^

您可能希望:

for (int i = 0; ccn!= 0; i++, ccn/= 10)

这个:

for (int len = 0; n ! = 0; n/=10, len++)
^

您需要删除该空间并使其!=

最新更新