티스토리 뷰

반응형

 

돈만 생기면 저금하는 사람을 가정하여,

save(int amount)를 작성한다.

 

이 함수는 저금할 금액인 amount를 받아

save(100)과 같이 호출된다.

 

save()는 정적 변수를 사용하여

현재까지 저축된 총액을 기억한다.

amount가 음수이면 출금이다.

 

 

 

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
#include <stdio.h>
void save(int amount);
 
int main(void)
{
    printf("  =================================\n");
    printf("\t입금\t 출금\t 잔고\n");
    printf("  =================================\n");
 
    save(10000);
    save(50000);
    save(-10000);
    save(30000);
    printf("  =================================\n");
 
    return 0;
}
 
void save(int amount) 
{
    static long balance;
    balance += amount;
 
    if (amount > 0)
    {
        printf("\t%4d\t\t%4d\n", amount, balance);
    }
    else if (amount < 0)
    {
        printf("\t\t%4d\t%4d\n"-amount, balance);
    }
}
cs

 

 

 

 

  - 결과  

 

 

 

 

  - 설명  

일단 메인 함수에서

입금 출금 잔고 메뉴판을 만든다.

 

10000원 입금, 50000원 입금,

10000원 출금, 30000원 입금에 따른

잔고를 알아보기 위해

save(10000), save(50000),

save(-10000), save(30000)으로

amount 매개변수를 전달한다.

 

save() 함수에서 balance(잔고)는

static 정적 변수로 선언되어

계속 호출되어도 초기화되지 않는다.

(정적 변수는 매 호출마다 초기화하지 않고,

초기 호출때만 초기화된다.)

 

잔고는 amount가 입력될 때마다 +된다.

amount가 양수이면

입금과 잔고에 나타내고,

amount가 음수이면

출금과 잔고에 나타낸다.

 

\t (탭)과 %nd (자릿수 형식 지정자)를

적절히 활용하여 칸을 보기좋게 정리한다.

 

여기서 balance += amount가

amount가 양/음에 상관없이

+=로 통일되는 이유는

amount가 -10000과 같이

음수로 들어오기 때문에

balance = balance + (-10000)이므로

덧셈으로 통일시킨 것이다.

 

만약 입/출금 메뉴를

사용자가 선택하도록 구성한 프로그램에서

입금 출금을 선택하여 

amount를 양수만 입력한다면

출금 메뉴에서는 balance -= amount를 써줘야 한다.

반응형
댓글
반응형
Recent Post.
Recent Reply.
Thanks for comming.
오늘은
명이 방문했어요
어제는
명이 방문했어요