목차
7장 중간점검
7장 exercise
7장 프로그래밍
7장 exercise
7장 프로그래밍
본문내용
d get_menu_number()
{
int n;
do {
print_menu();
scanf("%d", &n);
} while( n < 1 || n > 4 );
if( n == 1)
do_1();
else if( n == 2 )
do_2();
else if( n == 3 )
do_3();
else
do_4();
}
(c)
void do_1()
{
printf("1번 메뉴가 호출되었습니다.\n");
}
void do_2()
{
printf("2번 메뉴가 호출되었습니다.\n");
}
void do_3()
{
printf("3번 메뉴가 호출되었습니다.\n");
}
void do_4()
{
printf("4번 메뉴가 호출되었습니다.\n");
}
9.
#include
int add(int, int);
int sub(int, int);
int mult(int, int);
int div(int, int);
int main(void)
{
int op1, op2, result, quit;
char op;
while(1){
printf("연산을 입력하시오(종료는 Ctrl-Z):");
quit = scanf("%d %c %d", &op1, &op, &op2);
if( quit != 3 )
return 0;
switch( op){
case '+':
result = add(op1, op2);
break;
case '-':
result = sub(op1, op2);
break;
case '*':
result = mult(op1, op2);
break;
case '/':
result = div(op1, op2);
break;
}
printf("연산 결과:%d\n", result);
}
return 0;
}
int add(int op1, int op2)
{
static int count =0;
count++;
printf("덧셈은 총 %d번 호출되었습니다\n", count);
return op1+op2;
}
int sub(int op1, int op2)
{
static int count =0;
count++;
printf("뺄셈은 총 %d번 호출되었습니다\n", count);
return op1-op2;
}
int mult(int op1, int op2)
{
static int count =0;
count++;
printf("곱셈은 총 %d번 호출되었습니다\n", count);
return op1*op2;
}
int div(int op1, int op2)
{
static int count =0;
count++;
printf("나눗셈은 총 %d번 호출되었습니다\n", count);
return op1/op2;
}
10.
(a)
#include
void save(int amount);
int total;
int main(void)
{
int n;
while(1){
printf("얼마를 저축하시겟습니까?(종료는 -1): ");
scanf("%d", &n);
if( n < 0 )
break;
save(n);
}
return 0;
}
void save(int amount)
{
total += amount;
printf("지금까지의 저축액은 %d입니다.\n", total);
}
(b)
#include
void save(int amount);
int main(void)
{
int n;
while(1){
printf("얼마를 저축하시겟습니까?(종료는 -1): ");
scanf("%d", &n);
if( n < 0 )
break;
save(n);
}
return 0;
}
void save(int amount)
{
static int total;
total += amount;
printf("지금까지의 저축액은 %d입니다.\n", total);
}
(c)
#include
void save(int amount, int *p);
int main(void)
{
int n, total=0;
while(1){
printf("얼마를 저축하시겟습니까?(종료는 -1): ");
scanf("%d", &n);
if( n < 0 )
break;
save(n, &total);
}
return 0;
}
void save(int amount, int *p)
{
*p += amount;
printf("지금까지의 저축액은 %d입니다.\n", *p);
}
(d)
// 전역 변수를 사용하면 된다.
#include
void save(int amount);
void draw(int amount);
int total;
int main(void)
{
int n;
while(1){
printf("얼마를 저축하시겟습니까?(종료는 -1): ");
scanf("%d", &n);
if( n < 0 )
break;
save(n);
printf("얼마를 인출하시겟습니까?(종료는 -1): ");
scanf("%d", &n);
if( n < 0 )
break;
draw(n);
}
return 0;
}
void save(int amount)
{
total += amount;
printf("지금까지의 저축액은 %d입니다.\n", total);
}
void draw(int amount)
{
total -= amount;
printf("지금까지의 저축액은 %d입니다.\n", total);
}
11.
#include
void show_digit(int x);
int main(void)
{
show_digit(1234);
}
void show_digit(int x)
{
if( x > 0 )
{
show_digit(x / 10);// 재귀 호출
printf("%d\n", x % 10);// 나머지를 출력
}
}
12.
#include
#include
int recursive(int n);
int main(void)
{
printf("%d\n", recursive(10));
}
int recursive(int n)
{
if(n==1) return 1;
else return n*n*n+recursive(n-1);
}
{
int n;
do {
print_menu();
scanf("%d", &n);
} while( n < 1 || n > 4 );
if( n == 1)
do_1();
else if( n == 2 )
do_2();
else if( n == 3 )
do_3();
else
do_4();
}
(c)
void do_1()
{
printf("1번 메뉴가 호출되었습니다.\n");
}
void do_2()
{
printf("2번 메뉴가 호출되었습니다.\n");
}
void do_3()
{
printf("3번 메뉴가 호출되었습니다.\n");
}
void do_4()
{
printf("4번 메뉴가 호출되었습니다.\n");
}
9.
#include
int add(int, int);
int sub(int, int);
int mult(int, int);
int div(int, int);
int main(void)
{
int op1, op2, result, quit;
char op;
while(1){
printf("연산을 입력하시오(종료는 Ctrl-Z):");
quit = scanf("%d %c %d", &op1, &op, &op2);
if( quit != 3 )
return 0;
switch( op){
case '+':
result = add(op1, op2);
break;
case '-':
result = sub(op1, op2);
break;
case '*':
result = mult(op1, op2);
break;
case '/':
result = div(op1, op2);
break;
}
printf("연산 결과:%d\n", result);
}
return 0;
}
int add(int op1, int op2)
{
static int count =0;
count++;
printf("덧셈은 총 %d번 호출되었습니다\n", count);
return op1+op2;
}
int sub(int op1, int op2)
{
static int count =0;
count++;
printf("뺄셈은 총 %d번 호출되었습니다\n", count);
return op1-op2;
}
int mult(int op1, int op2)
{
static int count =0;
count++;
printf("곱셈은 총 %d번 호출되었습니다\n", count);
return op1*op2;
}
int div(int op1, int op2)
{
static int count =0;
count++;
printf("나눗셈은 총 %d번 호출되었습니다\n", count);
return op1/op2;
}
10.
(a)
#include
void save(int amount);
int total;
int main(void)
{
int n;
while(1){
printf("얼마를 저축하시겟습니까?(종료는 -1): ");
scanf("%d", &n);
if( n < 0 )
break;
save(n);
}
return 0;
}
void save(int amount)
{
total += amount;
printf("지금까지의 저축액은 %d입니다.\n", total);
}
(b)
#include
void save(int amount);
int main(void)
{
int n;
while(1){
printf("얼마를 저축하시겟습니까?(종료는 -1): ");
scanf("%d", &n);
if( n < 0 )
break;
save(n);
}
return 0;
}
void save(int amount)
{
static int total;
total += amount;
printf("지금까지의 저축액은 %d입니다.\n", total);
}
(c)
#include
void save(int amount, int *p);
int main(void)
{
int n, total=0;
while(1){
printf("얼마를 저축하시겟습니까?(종료는 -1): ");
scanf("%d", &n);
if( n < 0 )
break;
save(n, &total);
}
return 0;
}
void save(int amount, int *p)
{
*p += amount;
printf("지금까지의 저축액은 %d입니다.\n", *p);
}
(d)
// 전역 변수를 사용하면 된다.
#include
void save(int amount);
void draw(int amount);
int total;
int main(void)
{
int n;
while(1){
printf("얼마를 저축하시겟습니까?(종료는 -1): ");
scanf("%d", &n);
if( n < 0 )
break;
save(n);
printf("얼마를 인출하시겟습니까?(종료는 -1): ");
scanf("%d", &n);
if( n < 0 )
break;
draw(n);
}
return 0;
}
void save(int amount)
{
total += amount;
printf("지금까지의 저축액은 %d입니다.\n", total);
}
void draw(int amount)
{
total -= amount;
printf("지금까지의 저축액은 %d입니다.\n", total);
}
11.
#include
void show_digit(int x);
int main(void)
{
show_digit(1234);
}
void show_digit(int x)
{
if( x > 0 )
{
show_digit(x / 10);// 재귀 호출
printf("%d\n", x % 10);// 나머지를 출력
}
}
12.
#include
#include
int recursive(int n);
int main(void)
{
printf("%d\n", recursive(10));
}
int recursive(int n)
{
if(n==1) return 1;
else return n*n*n+recursive(n-1);
}
소개글