목차
1. 계산기 프로그램 작성하기, 연산별 count도 함께 출력하기
♣결과
♧코드
local variable, if-else if-else 구문 사용
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
int add(int, int);
int subtract(int, int);
int multiple(int, int);
int division(int, int);
int main(void)
{
int x, y;
char operator;
int add_count, subtract_count, multiple_count, division_count;
add_count = subtract_count = multiple_count = division_count = 0;
while (1) {
printf("식을 입력하세요 3 + 2/ 종료는ctrl+c\n");
scanf("%d %c %d", &x, &operator, &y);
if (operator=='+') {
add_count++;
printf("연산결과:%d ,+ 연산 횟수:%d \n", add(x, y), add_count);
}
else if (operator=='-') {
subtract_count++;
printf("연산결과:%d ,+ 연산 횟수:%d \n", subtract(x, y), subtract_count);
}
else if (operator=='*') {
multiple_count++;
printf("연산결과:%d ,+ 연산 횟수:%d \n", multiple(x, y), multiple_count);
}
else if (operator=='/') {
division_count++;
printf("연산결과:%d ,+ 연산 횟수:%d \n", division(x, y), division_count);
}
else {
printf("시스템을 종료합니다");
break;
}
}
return 0;
}
int add(int x, int y)
{
return x+y;
}
int subtract(int x, int y)
{
return x - y;
}
int multiple(int x, int y)
{
return x * y;
}
int division(int x, int y)
{
return x / y;
}
//olivia_codingschool
static variable , swtich문 사용
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
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;
}
//olivia_codingschool
2. 계속 돈을 입금할 때 총액 계산(static, local variable)
♣결과
♧코드
<static variable>
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
int add(int, int);
int main(void)
{
int amount;
while (1) {
printf("얼마를 입금하시겠습니까? 0:종료\n");
scanf("%d", &amount);
if (amount == 0) break;
printf("지금까지의 저축액은 %d입니다.", save(amount));
}
return 0;
}
int save(int amount)
{
static int all_amount;
all_amount += amount;
return all_amount;
}//olivia_codingschool
<global variable)
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
int add(int, int);
int all_amount;
int main(void)
{
int amount;
while (1) {
printf("얼마를 입금하시겠습니까? 0:종료\n");
scanf("%d", &amount);
if (amount == 0) break;
printf("지금까지의 저축액은 %d입니다.", save(amount));
}
return 0;
}
int save(int amount)
{
all_amount += amount;
return all_amount;
}
3. 재귀호출 이용해서 각 자리수 출력하기(높은 자리부터)
♣결과
>>1 4 5 6
♧코드
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int show_digit(int);
int x = 1456;
int main(void)
{
show_digit(x);
return 0;
}
int show_digit(int x)
{
if (x > 0) {
show_digit(x/10);
printf("%d ", x%10);
}
}
//olivia_codingschool
4. 재귀호출이용해서 1의 3제곱, 2의 3제곱,..., 5의 세제곱까지의 합을 구하시오
♣결과
>> 225
♧코드
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int f(int);
int n = 5;
int sum = 0;
int main(void)
{
f(n);
printf("%d", sum);
}
int f(int n)
{
if (n > 0) {
f(n - 1);
sum += pow(n, 3);
}
}
//olivia_codingschool
.
'C언어 > 참고서: C언어 콘서트' 카테고리의 다른 글
C언어 46차시 포인터 연산, call by value, call by reference (0) | 2023.04.05 |
---|---|
C언어 45차시 포인터, 메모리, 변수, 포인터 연산자 &, *, %p, 간접참조연산자 (0) | 2023.04.05 |
C언어 43차시 함수 연습문제 3 (0) | 2023.04.04 |
C언어 42차시 함수 연습문제 2 (0) | 2023.04.04 |
C언어 41차시 재귀함수 알고리즘 연습하기 +자료형 변형 (0) | 2023.04.04 |