</code> 언어 고수님들 도와주세요.
글쓴이: diget91 / 작성시간: 금, 2019/05/03 - 2:51오후
============================ 첫번째 =======================================
#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));
로 하면 왜안되는건지 아시는분 계시면 알려주실수 있으신가요..?
Forums:
add함수가 리턴형이 void이기 때문이죠.
리턴값을 잘 생각해보세요.
감사합니다 잘생각해보겠습니다!
감사합니다 잘생각해보겠습니다!
리턴값보다는 scope 때문이죠
add 안에서 선언한 변수라 main에서는 안보입니다.
윗분말이 맞네요
void라 그래요
void add(int a)
변수 이름도 좀 바꾸면 좋겠군요.
댓글 달기