-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcredit.c
More file actions
89 lines (88 loc) · 2.06 KB
/
credit.c
File metadata and controls
89 lines (88 loc) · 2.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include <stdio.h>
#include <cs50.h>
int main(void)
{
//getting card number from user
long card = get_long("Card number: ");
//forming every digit separately
int i16 = (card % 10);
int i15 = (((card / 10) % 10) * 2);
int i14 = ((card / 100) % 10);
int i13 = (((card / 1000) % 10) * 2);
int i12 = ((card / 10000) % 10);
int i11 = (((card / 100000) % 10) * 2);
int i10 = ((card / 1000000) % 10);
int i9 = (((card / 10000000) % 10) * 2);
int i8 = ((card / 100000000) % 10);
int i7 = (((card / 1000000000) % 10) * 2);
int i6 = ((card / 10000000000) % 10);
int i5 = ((card / 100000000000) % 10);
int t5 = i5 * 2;
int i4 = ((card / 1000000000000) % 10);
int i3 = ((card / 10000000000000) % 10);
int t3 = i3 * 2;
int i2 = ((card / 100000000000000) % 10);
int i1 = ((card / 1000000000000000) % 10);
int t1 = i1 * 2;
// amount of digits which are more than 9
if (i15 > 9)
{
i15 = i15 - 9;
}
if (i13 > 9)
{
i13 = i13 - 9;
}
if (i11 > 9)
{
i11 = i11 - 9;
}
if (i9 > 9)
{
i9 = i9 - 9;
}
if (i7 > 9)
{
i7 = i7 - 9;
}
if (t5 > 9)
{
t5 = t5 - 9;
}
if (t3 > 9)
{
t3 = t3 - 9;
}
if (t1 > 9)
{
t1 = t1 - 9;
}
//amount of all doubeled and nondoubeled digits
int sum = (i15 + i13 + i11 + i9 + i7 + t5 + t3 + t1 + i16 + i14 + i12 + i10 + i8 + i6 + i4 + i2);
//definition of last digit of amount
int j = sum % 10;
//definition of card type
if (j == 0)
{
if (i1 == 0 && (i2 == 3 && (i3 == 4 || i3 == 7)))
{
printf("AMEX\n");
}
else if (i1 == 5 && (i2 == 1 || i2 == 2 || i2 == 3 || i2 == 4 || i2 == 5))
{
printf("MASTERCARD\n");
}
else if (i1 == 4 || (i1 == 0 && i2 == 0 && i3 == 0 && i4 == 4))
{
printf("VISA\n");
}
else
{
printf("INVALID\n");
}
}
else
{
printf("INVALID\n");
}
}