Algorithm/컴퓨터알고리즘
C 프로그램 사례
와븨
2022. 9. 28. 02:05
사례 1)
#include <stdio.h>
main()
{
int SUM;
int A;
int B;
A = 10;
B = 25;
SUM = A + B;
printf("%d\n", SUM);
}
- 변수 A와 B의 값을 합한 값을 변수 SUM에 저장 후 출력
사례 2)
#include <stdio.h>
void main()
{
int SUM = 0, N1, N2, N;
scanf("%d", &N1);
scanf("%d", &N2);
for(N = N1; N<=N2;N++){
SUM = SUM + N;
}
printf("%d부터 %d까지 정수의 합은 %d이다. \n", N1, N2, SUM);
}
- 데이터 타입이 int형인 변수 SUM, N1, N2, N 생성. SUM은 0으로 초기화
- N1과 N2를 사용자에게 입력받음
- N1부터 N2까지 정수의 합을 SUM에 저장 후 출력
사례 3)
#include <stdio.h>
void main()
{
int NUM[5] = {70, 60, 50, 80, 90};
int MIN = 9999;
int N;
for (N = 0; N < 5; N++){
if (MIN > NUM[N]) {
MIN = NUM[N];
}
}
printf("배열 NUM의 원소들 중에서 최솟값은 %d입니다. \n", MIN);
}
- 배열변수 NUM의 5개 원소 값을 초깃값으로 설정하고 MIN을 9999로 초기화
- N번 동안 NUM(N)이 MIN보다 더 작으면 새로운 MIN으로 바꿔 최솟값을 찾는 for문 반복
- 최솟값 MIN 출력
사례 4)
#include <stdio.h>
void main()
{
int n, Fact = 1;
scanf("%d", &n);
printf("%d", n);
while(n>0) {
Fact = n * Fact;
n = n - 1;
}
printf("의 누승은 %d입니다. \n", Fact);
}
- 사용자에게 입력받은 변수 n의 팩토리얼 값을 출력
사례 5)
#include <stdio.h>
int factorial(int n)
{
int Fact = 1;
while(n>0){
Fact = n * Fact;
n = n-1;
}
return Fact;
}
void main()
{
int n, Fact;
scanf("%d", &n);
printf("%d", n);
Fact = factorial(n);
printf("의 누승은 %d입니다. \n", Fact);
}
- 팩토리얼 함수 생성
- 사용자에게 정수 n을 입력받아 n의 팩토리얼 값을 출력
사례 6)
#include <stdio.h>
int factorial(int n)
{
int Fact = 1;
if(n > 0) Fact = n * factorial(n-1);
return Fact;
}
void main()
{
int n, Fact;
scanf("%d", &n);
printf("%d", n);
Fact = factorial(n);
printf("의 누승은 %d입니다. \n",Fact);
}
- 재귀 호출을 통해 사용자가 입력한 변수 n의 팩토리얼 값을 출력
사례 7)
#include <stdio.h>
void swap(int *L, int *R)
{
int Temp;
Temp = *L;
*L = *R;
*R = Temp;
}
int GCD(int X, int Y)
{
for(;;){
int M = X % Y;
if(M == 0)
break;
X = Y;
Y = X;
}
return Y;
}
void main()
{
int A, B, R;
printf("두 수를 입력하세요. \n>>> 첫번째 수 = ");
scanf("%d",&A);
printf(">>>두번째 수 = ");
scanf("%d", &B);
if(A < B) swap(&A, &B);
R = GCD(A,B);
printf("최대공약수는 %d입니다. \n",R);
}
- swap() 함수는 두 개의 포인터 변수를 받아들여 보관된 값을 서로 교환함
- swap() 함수처럼 함수의 매개변수에 변수에 대한 주소를 전달하면서 함수를 호출한다. => Call by Address / Call by Reference
- GCD() 함수는 두 수 X, Y의 최대공약수를 구한느 함수로 main() 함수에 의하여 호출된 후 최대공약수를 계산하여 반환