반응형
세 값의 최댓값
#include <stdio.h>
int main(void)
{
int a, b, c;
int max;
printf("세 정수의 최댓값을 구합니다.\n");
printf("a의 값 :");
printf("b의 값 :");
printf("c의 값 :");
scanf_s("%d", &a);
scanf_s("%d", &b);
scanf_s("%d", &c);
max = a;
if (b > max)
max = b;
if (c > max)
max = c;
printf("최댓값은 %d입니다. \n", max);
return 0;
}
최댓값을 구하는 과정
- max에 a값을 넣는다.
- b값이 max보다 크면 max에 b값을 넣는다.
- c값이 max보다 크면 max에 c값을 넣는다.
여러 값에 대해서 최댓값을 구하는 방법
#include <stdio.h>
int max3(int a, int b, int c)
{
int max = a;
if (b > max)
max = b;
if (c > max)
max = c;
return max;
}
int main(void)
{
printf("max3(%d,%d,%d) = %d\n", 3, 2, 1, max3(3, 2, 1)); //A
printf("max3(%d,%d,%d) = %d\n", 3, 2, 2, max3(3, 2, 2)); //B
printf("max3(%d,%d,%d) = %d\n", 3, 1, 2, max3(3, 1, 2)); //C
printf("max3(%d,%d,%d) = %d\n", 3, 2, 3, max3(3, 2, 3)); //D
printf("max3(%d,%d,%d) = %d\n", 2, 1, 3, max3(2, 1, 3)); //E
printf("max3(%d,%d,%d) = %d\n", 3, 3, 2, max3(3, 3, 2)); //F
printf("max3(%d,%d,%d) = %d\n", 3, 3, 3, max3(3, 3, 3)); //G
printf("max3(%d,%d,%d) = %d\n", 2, 2, 3, max3(2, 2, 3)); //H
printf("max3(%d,%d,%d) = %d\n", 2, 3, 1, max3(2, 3, 1)); //I
printf("max3(%d,%d,%d) = %d\n", 2, 3, 2, max3(2, 3, 2)); //J
printf("max3(%d,%d,%d) = %d\n", 1, 3, 2, max3(1, 3, 2)); //K
printf("max3(%d,%d,%d) = %d\n", 2, 3, 3, max3(2, 3, 3)); //L
printf("max3(%d,%d,%d) = %d\n", 1, 2, 3, max3(1, 2, 3)); //M
return 0;
}
여러번 반복해서 구하는 경우에는 함수로 처리하기
알고리즘이란
문제를 해결하기 위한 명확하게 정의되고 순서가 있는 유한 개의 규칙으로 이루어진 집합
세 값의 중앙값
#include <stdio.h>
int med3(int a, int b, int c)
{
if (a >= b)
if (b >= c)
return b;
//a>b>c, a>b=c, a=b>c, a=b=c
else if (a <= c)
return a;
//a=c>b, c>a>b, c>a=b
else
return c;
//a>c>b
else if (a > c)
return a;
//b>a>c
else if (b > c)
return c;
//b>a=c, b>c>a
else
return b;
//b=c>a, c>b>a
}
int main(void)
{
int a, b, c;
printf("세 정수의 중앙값을 구합니다.\n");
printf("a의 값 :"); scanf_s("%d", &a);
printf("b의 값 :"); scanf_s("%d", &b);
printf("c의 값 :"); scanf_s("%d", &c);
printf("중앙값은 %d입니다. \n", med3(a, b, c));
return 0;
}
세 값의 대소관계를 모두 파악해야 하기 때문에 중앙값을 구하는 절차는 매우 복잡하다.
조건 판단과 분기
#include <stdio.h>
int main(void)
{
int n;
printf("정수를 입력하세요. :");
scanf_s("%d", &n);
if (n > 0)
printf("이 수는 양수입니다.\n");
else if (n < 0)
printf("이 수는 음수입니다.\n");
else
printf("이 수는 0입니다.\n");
return 0;
}
- n이 0보다 큰경우
- n이 0보다 크지 않고 n이 0보다 작은경우
- n이 0보다 크지 않고 n이 0보다 작지도 않은 경우 (= 0인 경우)
반응형
'Computer Engineering > Data Structures Using C' 카테고리의 다른 글
[C언어 자료구조] 01-2. 반복 (0) | 2020.12.29 |
---|---|
[C언어] 자료구조 공부하기 (0) | 2020.12.29 |