산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> C 언어

C 프로그래밍의 사용자 정의 함수 유형

C 프로그래밍의 사용자 정의 함수 유형

이 튜토리얼에서는 함수를 사용하여 동일한 문제를 해결하기 위해 취할 수 있는 다양한 접근 방식에 대해 배울 것입니다.

아래 4가지 프로그램은 사용자가 입력한 정수가 소수인지 아닌지를 확인합니다.

아래 모든 프로그램의 출력은 동일하며 각 예제에서 사용자 정의 함수를 만들었습니다. 그러나 각 예에서 취한 접근 방식은 다릅니다.

<시간>

예시 1:전달된 인수 및 반환 값 없음

#include <stdio.h>

void checkPrimeNumber();

int main()
{
    checkPrimeNumber();    // argument is not passed
    return 0;
}

// return type is void meaning doesn't return any value
void checkPrimeNumber()
{
    int n, i, flag = 0;

    printf("Enter a positive integer: ");
    scanf("%d",&n);

    for(i=2; i <= n/2; ++i)
    {
        if(n%i == 0)
        {
            flag = 1;
        }
    }
    if (flag == 1)
        printf("%d is not a prime number.", n);
    else
        printf("%d is a prime number.", n);
}

checkPrimeNumber() 함수는 사용자로부터 입력을 받아 소수인지 확인하여 화면에 표시합니다.

checkPrimeNumber();의 빈 괄호 main() 안의 문 함수는 인수가 함수에 전달되지 않았음을 나타냅니다.

함수의 반환 유형은 void입니다. . 따라서 함수에서 값이 반환되지 않습니다.

<시간>

예시 2:전달된 인수가 없지만 반환 값

#include <stdio.h>
int getInteger();

int main()
{
    int n, i, flag = 0;

   // no argument is passed
    n = getInteger();    

    for(i=2; i<=n/2; ++i)
    {
        if(n%i==0){
            flag = 1;
            break;
        }
    }

    if (flag == 1)
        printf("%d is not a prime number.", n);
    else
        printf("%d is a prime number.", n);

    return 0;
}

// returns integer entered by the user
int getInteger()       
{
    int n;

    printf("Enter a positive integer: ");
    scanf("%d",&n);

    return n;
}

n = getInteger();의 빈 괄호 문은 함수에 전달된 인수가 없음을 나타냅니다. 그리고 함수에서 반환된 값은 n에 할당됩니다. .

여기서 getInteger() 함수는 사용자로부터 입력을 받아 반환합니다. 숫자가 소수인지 확인하는 코드는 main() 안에 있습니다. 기능.

<시간>

예 3:인수가 전달되었지만 반환 값이 없음

#include <stdio.h>
void checkPrimeAndDisplay(int n);

int main()
{
    int n;

    printf("Enter a positive integer: ");
    scanf("%d",&n);

    // n is passed to the function
    checkPrimeAndDisplay(n);

    return 0;
}

// return type is void meaning doesn't return any value
void checkPrimeAndDisplay(int n) 
{
    int i, flag = 0;

    for(i=2; i <= n/2; ++i)
    {
        if(n%i == 0){
            flag = 1;
            break;
        }
    }
    if(flag == 1)
        printf("%d is not a prime number.",n);
    else
        printf("%d is a prime number.", n);
}

사용자가 입력한 정수 값은 checkPrimeAndDisplay()에 전달됩니다. 기능.

여기에서 checkPrimeAndDisplay() 함수는 전달된 인수가 소수인지 여부를 확인하고 적절한 메시지를 표시합니다.

<시간>

예시 4:전달된 인수 및 반환 값

#include <stdio.h>
int checkPrimeNumber(int n);

int main()
{
    int n, flag;

    printf("Enter a positive integer: ");
    scanf("%d",&n);

    // n is passed to the checkPrimeNumber() function
    // the returned value is assigned to the flag variable
    flag = checkPrimeNumber(n);

    if(flag == 1)
        printf("%d is not a prime number",n);
    else
        printf("%d is a prime number",n);

    return 0;
}

// int is returned from the function
int checkPrimeNumber(int n)
{
    int i;

    for(i=2; i <= n/2; ++i)
    {
        if(n%i == 0)
            return 1;
    }

    return 0;
}

사용자의 입력은 checkPrimeNumber()로 전달됩니다. 기능.

checkPrimeNumber() 함수는 전달된 인수가 소수인지 여부를 확인합니다.

전달된 인수가 소수이면 함수는 0을 반환하고 전달된 인수가 소수가 아닌 경우 1을 반환합니다. 반환 값은 flag에 할당됩니다. 변수.

플래그 여부에 따라 0 또는 1이면 main()에서 적절한 메시지가 인쇄됩니다. 기능.

<시간>

어떤 접근 방식이 더 낫습니까?

글쎄, 그것은 당신이 해결하려는 문제에 달려 있습니다. 이 경우 인수를 전달하고 함수(예제 4)에서 값을 반환하는 것이 좋습니다.

함수는 특정 작업을 수행해야 합니다. checkPrimeNumber() 함수는 사용자로부터 입력을 받지도 않고 적절한 메시지를 표시하지도 않습니다. 숫자가 소수인지 여부만 확인합니다.


C 언어

  1. C# 프로그래밍의 네임스페이스
  2. C 데이터 유형
  3. C 프로그래밍 연산자
  4. C 표준 라이브러리 함수
  5. C++ 변수 및 유형:int, double, char, string, bool
  6. C의 포인터:C 프로그래밍의 포인터란 무엇입니까? 유형
  7. C 튜토리얼
  8. C - 데이터 유형
  9. C - 기능
  10. C - 변수 인수