언어 자료구조 알고리즘/디딤돌 C언어

[정답] 디딤돌 C언어 52. 함수 개요

언제나휴일 2016. 5. 1. 08:11
반응형

[정답] 52. 함수 개요


함수 개요


기본 연습
1.
개의 정수를 입력 매개변수로 전달받아 수를 반환하는 함수를 작성하시오.  
    
그리고 작성한 함수를 이용해서 2, 9 중에 수를 출력하시오.
:
// 개의 정수를 입력 매개변수로 전달받아 수를 반환하는 함수 작성
//그리고 작성한 함수를 이용해서 2, 9 중에 수를 출력
 
#include <stdio.h>
 
int FindBig(int a, int b);
int main(void)
{
    printf("%d\n", FindBig(2, 9));
    return 0;
}
int FindBig(int a, int b)
{
    if (a > b)
    {
        return a;
    }
    return b;
}
 

2. 하나의 정수를 입력 매개변수로 전달받아 홀수일 때는 0 반환하고 짝수일 때는 1 반환하는 함수를 작성하시오.  
   
그리고 작성한 함수를 이용해서 1~10 사이에 개의 짝수가 있는지 출력하시오.
:
//하나의 정수를 입력 매개변수로 전달받아 홀수일 때는 0 반환하고 짝수일 때는 1 반환하는 함수
//그리고 작성한 함수를 이용해서 1~10 사이에 개의 짝수가 있는지 출력
 
#include <stdio.h>
 
int IsEven(int num);
int main(void)
{
    int i;
    int count = 0;
    for (i = 1; i <= 10; i++)
    {
        if (IsEven(i))
        {
            count++;
        }
    }
    printf("1~10 사이의 짝수 개수:%d\n", count);
    return 0;
}
int IsEven(int num)
{
    return num % 2==0;
}
 
3.
하나의 정수를 입력 매개변수로 전달받아 소수일 때는 1 반환하고 그렇지 않을 때는 0 반환하는 함수를 작성하시오.
   
여기서 소수란 1 자기 자신만을 약수로 갖는 수를 말합니다.  
  
그리고 작성한 함수를 이용해서 1~100 사이에 개의 소수가 있는지 출력하시오.
:
//하나의 정수를 입력 매개변수로 전달받아 소수인지 판별하는 함수 작성
//작성한 함수를 이용해서 1~100 사이에 개의 소수가 있는지 출력
 
#include <stdio.h>
int IsPrime(int n);
int main(void)
{
    int i;
    int count = 0;
    for (i = 1; i <= 100; i++)
    {
        if (IsPrime(i))
        {
            count++;
        }
    }
    printf("1~100 사이의 소수는 %d\n", count);
    return 0;
}
int IsPrime(int n)
{
    int i;
    for (i = 2; i < n; i++)
    {
        if (n%i == 0)
        {
            return 0;
        }
    }
    return 1;
}
 

 

4. 개의 정수를 입력 매개변수로 전달받아 최소 공배수를 구하는 함수를 작성하시오.  
:
//최소 공배수를 구하는 함수 작성
#include <stdio.h>
int FindLCM(int a, int b);
 
int main(void)
{
    int a, b;
    int lcm;
   
    printf(" 개의 정수 입력:");
    scanf_s("%d%d", &a, &b);
 
    lcm = FindLCM(a, b);
    if (lcm == -1)
    {
        printf("int 형식 표현 범위에서 최소 공배수를 구할 없습니다.\n");
    }
    else
    {
        printf("%d %d 최소 공배수는 %d\n", a, b, lcm);
    }
 
    return 0;
}
 
int FindLCM(int a, int b)
{
    int lcm;
    if (a > b)//a b보다 크면
    {
        // 수를 교환
        int temp = a;
        a = b;
        b = temp;
    }
    for (lcm = b; ; lcm += b)
    {
        if (lcm%a == 0)
        {
            return lcm;
        }
    }
    return -1;   
} 


5. 개의 정수를 입력 매개변수로 전달받아 최대 공약수를 구하는 함수를 작성하시오.
:
//최대 공약수를 구하는 함수 작성
#include <stdio.h>
int FindGCD(int a, int b);
 
int main(void)
{
    int a, b;
    int lcm;
 
    printf(" 개의 정수 입력:");
    scanf_s("%d%d", &a, &b);
 
    lcm = FindGCD(a, b);
    if (lcm == -1)
    {
        printf("최대 공약수를 구할 없습니다.\n");
    }
    else
    {
        printf("%d %d 최대 공약수는 %d\n", a, b, lcm);
    }
 
    return 0;
}
 
int FindGCD(int a, int b)
{
    int gcd;
    if (a > b)//a b보다 크면
    {
        // 수를 교환
        int temp = a;
        a = b;
        b = temp;
    }
    for (gcd = a; ; gcd--)
    {
        if ((a%gcd==0)&&(b%gcd == 0))
        {
            return gcd;
        }
    }
    return -1;
}



본문 52. 함수 개요


반응형