get_long_long("")
из кода ниже печатает 2 раза, и я не уверен, почему. Он печатает, Please enter your credit card number..."
, 2 раза. (Примечание: я не обманываю людей, мы делаем этот проект для класса информатики AP, в основном пишу программу, которая проверяет, является ли карта законной.)
Это не полный код, а только начало, которое спрашивает, у какого провайдера карты он есть, и затем использует эту информацию, чтобы определить, является ли карта законной.
#include <cs50.h>
#include <stdio.h>
#include <string.h>
char type1[100]; //array used to store and then compare which card is being used
char visa[25] = "Visa";
char amex[25] = "Amex";
char master[25] = "Mastercard";
long long card;
int main(void)
{
printf("Is your card Visa, Mastercard, or Amex?\n");
//read the card type then store it in type array
scanf("%s", type1);
if (strcmp(type1, master) == 0 || strcmp(type1, visa) == 0 ||
strcmp(type1, amex) == 0)
{
card = get_long_long("Please enter your credit card
number\n");
}
do
{
printf("Is your card Visa, Mastercard, or Amex?\n");
scanf("%s", type1);
}
while (strcmp(type1, master) == 0 || strcmp(type1, visa) == 0
|| strcmp(type1, amex) != 0);