-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathATM.c
54 lines (54 loc) · 1.85 KB
/
ATM.c
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
//ATM.c
/*
*
* Rút tiền từ ATM
* biết số tờ tiền 500.000, 200.000, 100.000, 50.000 còn lại trong máy
* hiển thị số tờ tiền với từng mệnh giá tương ứng cần đưa ra cho khách hàng
*
* còn lỗi với trường hợp cần rút xxx50.000 và trong máy không còn đủ tờ 50.000
*
*/
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int main()
{
SetConsoleOutputCP(65001);
system("cls");
unsigned int rut = 0,
con = 0,
temp = 0,
i = 0,
menhgia[] = {500, 200, 100, 50},
soto[] = {0, 0, 0, 0};
for (int j = 0; j < 4; j++)
{
printf("Nhập số tờ tiền %d.000: ", menhgia[j]);
scanf("%d", &soto[j]);
con = con + menhgia[j] * soto[j];
}
printf(" Tổng số tiền ATM hiện tại còn: %d.000\n\n", con);
printf("Bạn cần rút bao nhiêu tiền? (Bội của 1000) ");
scanf("%d", &rut);
while (rut > con || rut < 50)
{
printf("\nATM hiện tại không còn đủ tiền. Hoặc bạn đã nhập số tiền nhỏ hơn 50.000\nHãy nhập số tiền khác, nhỏ hơn %d.000 và lớn hơn 50.000 \n\n", con);
printf("Bạn cần rút bao nhiêu tiền? (Bội của 1000) ");
scanf("%d", &rut);
}
printf(" Bạn hãy lấy:\n");
while (rut > 0)
{
temp = rut / menhgia[i]; // số tờ cần rút ra với từng mệnh giá 500, 200, 100, 50
if (temp > soto[i])
{
temp = soto[i];
rut = rut - temp * menhgia[i];
}
else
rut = rut % menhgia[i]; // phần còn lại sau khi rút số tờ với mệnh giá trên
printf(" %d tờ %d.000 \n", temp, menhgia[i]);
i++;
}
return 0;
}