매개 변수의 개수가 가변적으로 변할 수 있는 기능입니다. stdarg.h 표준 라이브러리를 사용해야합니다. 이것은 인자 수를 제한 없이 할 수 있도록 하는 함수를 허용합니다
자기 자신을 호출하는 반복 함수입니다.
ex)
if(n<=1)
return 1;
else
return (n * factorial(n-1));
#include <stdio.h>
long factorial(int);
int main(void) {
int n = 10;
printf("10!(팩토리얼)을 구하는 순환 함수를 작성해 보시오.\n");
printf("===============================\n");
printf("%d!는 %d입니다.\n", n, factorial(n));
printf("===============================\n");
printf("작성자 : 2017E7043 최주영");
}
long factorial(int n)
{
printf("factorial(%d) = ", n);
if (n <= 1)
{
printf("return(1)\n");
return 1;
}
else
{
printf("return(%d * factorial(%d))\n",n,n-1);
return (n * factorial(n - 1));
}
}
#include <stdio.h>
void Dec2oct(int);
int main(void) {
int n;
printf("8진수로 변환할 정수를 입력하세요 : ");
scanf_s("%d", &n);
printf("===============================\n");
printf("변환 결과는 : ");
Dec2oct(n);
printf("입니다.\n");
printf("===============================\n");
printf("작성자 : 2017E7043 최주영");
}
void Dec2oct(int n) {
if (n < 1)
return n;
else
{
Dec2oct(n / 8);
printf("%d", n % 8);
}
}
#include <stdio.h>
#include<math.h>
void hanoi_tower(int, char, char, char);
int main(void)
{
int n;
printf("문제 : 원판이 10개인 하노이 타워를 옮기려면 몇번 이동해야하는가?\n");
printf("=====================\n");
printf("원판의 개수를 입력하시오 : ");
scanf_s("%d", &n);
hanoi_tower(n, 'A', 'B', 'C');
printf("=====================\n");
printf("총 이동횟수는 = %.0f\n", pow(2, n) - 1);
printf("=====================\n");
printf("작성자 : 2017E7043 최주영");
return 0;
}
void hanoi_tower(int n, char from, char tmp, char to)
{
int cnt;
if (n == 1)
{
printf("원판 1을 %c에서 %c로 옮긴다.\n", from, to);
}
else {
hanoi_tower(n - 1, from, to, tmp);
printf("원판 %d을 %c에서 %c로 옮긴다.\n",n,from, to);
hanoi_tower(n - 1, tmp, from, to);
}
}
#include <stdio.h>
void nod(int);
int main(void)
{
int n;
int num;
printf("문제 : 5자리 정수값을 입력받아 한글로 출력하는 프로그램을 작성하시오.\n");
printf("================================\n");
printf("최대 5자리 정수를 입력하시오 : ");
scanf_s("%d", &n);
printf("================================\n");
if ((n / 10000) >= 1 && (n / 10000 <= 9))
{
num = n / 10000;
nod(num);
printf("만");
n = n % 10000;
}
if ((n / 1000) >= 1 && (n / 1000 <= 9))
{
num = n / 1000;
nod(num);
printf("천");
n = n % 1000;
}
if ((n / 100) >= 1 && (n / 100 <= 9))
{
num = n / 100;
nod(num);
printf("백");
n = n % 100;
}
if ((n / 10) >= 1 && (n / 10 <= 9))
{
num = n / 10;
nod(num);
printf("십");
n = n % 10;
}
if ((n / 1) >= 1 && (n / 1 <= 9))
{
if (n == 1)
{
printf("일");
}
nod(n);
}
printf("\n");
printf("================================\n");
printf("작성자 : 2017E7043 최주영");
return 0;
}
void nod(int num)
{
switch (num)
{
case 2:
printf("이");
break;
case 3:
printf("삼");
break;
case 4:
printf("사");
break;
case 5:
printf("오");
break;
case 6:
printf("육");
break;
case 7:
printf("칠");
break;
case 8:
printf("팔");
break;
case 9:
printf("구");
break;
default:
break;
}
}