265p
Programming
9. 덧셈, 뺄셈, 곰셈, 나눗셈을 지원하는 계산기 프로그램을 작성하여보자. 이번에는 각 연산들이 몇 번씩 계산되었는지를 기억하게 한다. 각 연산을 지원하는 함수들은 자신이 호출된 횟수를 화면에 출력한다.
연산을 입력하시오: 1 + 2 연산 결과: 3 덧셈은 총 1번 실행되었습니다. 연산을 입력하시오: 1 * 2 연산 결과: 2 곱셈은 총 1번 실행되었습니다.
연산을 입력하시오: 5 + 3 연산 결과: 8 덧셈은 총 2번 실행되었습니다. |
(a) 정적 지역 변수를 사용하여 프로그램을 작성하여라.
(b) 전역 변수를 사용하여 프로그램을 작성하여라.
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> int a, b; //(b) 전역 변수 사용 char ch; void sum(int a, int b) { static int sum = 0; //(a) 정적 지역 변수 사용 sum += 1; printf("연산결과: %d\n", a + b); printf("덧셈은 총 %d번 실행되었습니다.\n", sum); } void sub(int a, int b) { static int sub = 0; sub += 1; printf("연산결과: %d\n", a - b); printf("뺼셈은 총 %d번 실행되었습니다.\n", sub); } void mul(int a, int b) { static int mul = 0; mul += 1; printf("연산결과: %d\n", a * b); printf("곱셈은 총 %d번 실행되었습니다.\n", mul); } void divi(int a, int b) { static int divi = 0; divi += 1; if (b == 0){ printf("0으로 나눌수 없습니다\n"); return; } printf("연산결과: %d\n", a / b); printf("나눗셈은 총 %d번 실행되었습니다.\n", divi); } void main() { while (1) { printf("연산을 입력하시오 : "); scanf("%d%c%d", &a, &ch, &b); switch (ch) { case '+': sum(a, b); break; case '-': sub(a, b); break; case '*': mul(a, b); break; case '/': divi(a, b); break; } } system("pause"); } |
10. 돈만 생기면 저금하는 사람을 가정하자. 이 사람을 위한 함수 save(int amount)를 작성하여보자. 이 함수는 저금할 금액을 나타내는 하나의 인수 amount만을 받으며 save(100)과 같이 호출된다. save()는 현재까지 저축된 총액을 기억하고 있으며 한 번 호출될 때마다 총 저축액을 화면에 출력한다.
얼마를 저축하시겠습니까? (종료는 -1) 200 지금까지 총 저축액은 200입니다. 얼마를 저축하시겠습니까? (종료는 -1) 300 지금까지 총 저축액은 500입니다. 얼마를 저축하시겠습니까? (종료는 -1) 700 지금까지 총 저축액은 1200입니다. 얼마를 저축하시겠습니까? (종료는 -1) -1 종료 |
(a) 전역 변수를 사용하여 구현하여라.
(b) 정적 지역 변수를 사용하여 구현하여라.
#define _CRT_SECURE_NO_WARNINGS int save_money=0; //(a) 전역변수 사용 void main() } |
(c) 이 프로그램을 지역 변수만을 사용하여 구현하려면 save() 함수의 정의를 어떻게 변경하여야 하는가?
#define _CRT_SECURE_NO_WARNINGS int save(int amount,int money) void main() |
(d) 예금 인출을 나타내는 함수 draw(int amount)도 작성하여보자. svae()와 draw()를 동시에 사용하려면 저금액은 어떤 종류의 변수로 표현하여야 하는가?
#define _CRT_SECURE_NO_WARNINGS int cash = 0,money = 0; |
'Solution > C언어 콘서트' 카테고리의 다른 글
C언어 콘서트 - 제8장: 배열 연습문제 (1/5) (11) | 2015.01.28 |
---|---|
C언어 콘서트 - 제7장: 함수 연습문제 (8/8) (0) | 2015.01.25 |
C언어 콘서트 - 제7장: 함수 연습문제 (6/8) (2) | 2014.07.30 |
C언어 콘서트 - 제7장: 함수 연습문제 (5/8) (5) | 2014.07.27 |
C언어 콘서트 - 제7장: 함수 연습문제 (4/8) (8) | 2014.06.23 |