gpt4 book ai didi

c - 需要有关 CS50 使用 'C' 的 luhns 算法的帮助

转载 作者:行者123 更新时间:2023-11-30 20:49:40 25 4
gpt4 key购买 nike

我的代码遇到的问题如下:

  1. 第 15 行,尽管括号是相关的,但并未将其识别为相关
  2. 以及无法识别 (x/10; x<10,++count) 中的第一个分号;
  3. 无法识别除号和大于号(x/10;x<10,++count);
  4. 第 22 行,计数 = 15 ||计数 = 16);显然这两个数字都是不可分配的。

// check credit number if valid
#include <cs50.h>
#include <stdio.h>
#include <math.h>

int main(void)
{
long x;
int count;
count = 0;
printf("Please enter your credit card number: \n");
scanf("%ld", &x);
while (x >= 9)
{
(x/10; x>10, ++count);
}
printf("length of card number: ld, count");
if (count != 13 || count != 15 || count != 16)
{
printf("is invalid, \n");
}
if (count = 13 || count = 15 || count = 16);
{
printf("is valid, \n");
}
}

最佳答案

(x/10; x>10, ++count);看起来您正在尝试编写 for 的表达式环形。你不能把它们写成一个孤立的陈述。一个for声明的形式为:

for ( clause-1 ; expression-2 ; expression-3 ) statement

clause-1 可以是声明或表达式。它在循环开始时进行评估。

语句中的循环体可以是复合语句( {} ),只要 表达式-2 就会执行在语句开始之前评估为 true。每次执行语句后,都会计算表达式-3

请注意,两个分隔符均使用分号;没有逗号。

如果您希望将这些条件与 while 合并在他们之前,您需要将整个事情重组为 for循环或其他适当的 C 结构。

在第一个if声明,count != 13 || count != 15 || count != 16是错的。 count 总是不等于 13 不等于 15,因为它永远不可能同时等于两者。再考虑一下您要测试什么条件。

第二个if语句中,比较值的运算符是 == 。相比之下,=赋值运算符。

关于c - 需要有关 CS50 使用 'C' 的 luhns 算法的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60140163/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com