본문 바로가기

+ 컴퓨터/C

[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
#include <stdio.h>
int total_amount;
int save(int amount)
{
  total_amount=total_amount + amount;
  return total_amount;
}
main()
{
 int amount;
 for(;;)
 {
  printf("얼마를 저축하시겠습니까(종료는 -1) :");
  scanf("%d",&amount);
  
  if(amount != -1)
   printf("지금까지 총저축액은 %d입니다.\n",save(amount));
  else
  {
   printf("종료\n");
   break;
  }
 
 }
}
 


<정적 지역 변수로 구현>

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
#include <stdio.h>
 
int save(int amount)
{
 int total_amount = 0;
  total_amount = total_amount + amount;
  return total_amount;
}
main()
{
 int amount;
 for(;;)
 {
  printf("얼마를 저축하시겠습니까(종료는 -1) :");
  scanf("%d",&amount);
  
  if(amount != -1)
   printf("지금까지 총저축액은 %d입니다.\n",save(amount));
  else
  {
   printf("종료\n");
   break;
  }
 
 }
}


<지역 변수만>

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
#include <stdio.h>
 
int save(int amount, int total_amount)
{  
  total_amount = total_amount + amount;
  return total_amount;
}
main()
{
 int amount;
 int total_amount = 0;
 for(;;)
 {
  printf("얼마를 저축하시겠습니까(종료는 -1) :");
  scanf("%d",&amount);
  
  if(amount != -1)
   printf("지금까지 총저축액은 %d입니다.\n",total_amount = save(amount,total_amount));
  else
  {
   printf("종료\n");
   break;
  }
 
 }
}

지역 변수만으로 짤 경우 save함수에 변수를 하나 더 추가해주어야 한다는 것이 중요하다.