</code> 언어 고수님들 도와주세요.

diget91의 이미지

============================ 첫번째 =======================================

#include <stdio.h>
 
void add(int val);
 
int main(void)
{
	int a;
	while (1)
	{
		printf("저금할 금액 : ");
		scanf("%d", &a);
		if (a == -1)
			break;
		add(a);                  
	}
	printf("입금완료\n");
 
	return 0;
}
 
 
void add(int a)
{
	static int add=0;
	add +=a;
	printf("현재까지 저금된 금액:%d\n", add);
}

=============================== 두번째 =========================================
#include <stdio.h>
 
void add(int val);
 
int main(void)
{
	int a;
	while (1)
	{
		printf("저금할 금액 : ");
		scanf("%d", &a);
		if (a == -1)
			break;
			printf("현재까지 저금된 금액:%d\n", add(a));    //<<<<<<<<<<<<이부분 왜안되나요
	}
	printf("입금완료\n");
 
	return 0;
}
 
 
void add(int a)
{
	static int add=0;
	add +=a;
}

========================================================

첫번째로 실행하면 잘되는데 두번째는 실행이 안되요
첫번째는 책에 있는 내용이고 두번째는 제가 이렇게하면 안되나 하고 바꿔봤는데요
// printf("현재까지 저금된 금액:%d\n", add(a));
로 하면 왜안되는건지 아시는분 계시면 알려주실수 있으신가요..?

lalupo20의 이미지

리턴값을 잘 생각해보세요.

diget91의 이미지

감사합니다 잘생각해보겠습니다!

리턴값보다는의 이미지

add 안에서 선언한 변수라 main에서는 안보입니다.

다시보니깐의 이미지

void라 그래요

익명 사용자의 이미지

void add(int a)
{
	static int add=0;
	add +=a;
}

변수 이름도 좀 바꾸면 좋겠군요.
int add (int a)
{
	static int sum = 0;
	sum += a;
        return sum;
}