【发布时间】:2021-08-24 16:00:51
【问题描述】:
我目前正在学习 cs50 计算机科学哈佛在线课程,我目前的挑战是检查变量中的第一个字符是否等于数字这里是我的代码
#include <cs50.h>
#include <stdio.h>
int main(void) {
long card;
char n = card[0];
do {
card = get_long("Enter Credit Card Number: ");
} while (card < 15);
if (n == 3) {
printf("AMEX\n");
}
/*
AMEX\n 34 or 37;
MASTERCARD\n 51, 52, 53, 54, or 55
VISA\n 4
INVALID\n
*/
}
伪代码如下
if (input first number is equal to 3) {
print "AMEX" //new line
} else if (input first number is equal to 5) {
print "MASTERCARD"8 //new line
}
我试过了
if (card[0] == 3) {
printf("AMEX\n");
}
但由于它不是数组,所以它不起作用。
我也尝试在网上搜索答案,但由于我对 c 一点都不熟悉(我学习 HTML、css、javascript 和 react)我不太了解 c 的布局
对不起,如果我的帖子有点难以阅读,我对整个 StackOverflow 的事情都是新手,如果您需要其他任何东西,请尽管询问
【问题讨论】:
-
card应该是字符串,而不是数字。 -
无论如何
long如果是 32 位将没有足够的容量。 -
另外,由于 n 是
char,所以它将是n == '3',而不是n == 3。 -
好的,谢谢,我试试
-
请注意,它至少需要一个 64 位整数才能容纳 16 位信用卡号。而要从所述 16 位数字中提取最重要的数字,则需要进行数学运算:
n / 1000000000000000LL将截断最低 15 位数字并留下第 16 位。
标签: c if-statement indexing cs50