Hàm trong C – phần 3

Ví dụ 1: Không có argument và return

#include <stdio.h>

void checkPrimeNumber();

int main()
{
    checkPrimeNumber();    // không có argument
    return 0;
}

// void có nghĩa là không có biến hoàn trả lại
void checkPrimeNumber()
{
    int n, i, flag = 0;

    printf("Hãy nhập một số nguyên dương: ");
    scanf("%d",&n);

    for(i=2; i <= n/2; ++i)
    {
        if(n%i == 0)
        {
            flag = 1;
        }
    }
    if (flag == 1)
        printf("%d Không phải là số nguyên tố.", n);
    else
        printf("%d là số nguyên tố.", n);
}

Hàm checkPrimeNumber() lấy dữ liệu từ người dùng và kiểm tra xem đó có phải là số nguyên tố hay không. Kết quả sẽ được hiển thị trên màn hình.

Ví không có gì trong dấu ngoặc () nên chúng ta không cần nhập argument khi gọi hàm.

Hàm này cũng không trả lại giá trị nào vì không có lệnh return và kiểu biến của hàm là void.


Ví dụ 2: không có argument nhưng có return

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

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

   // không có argument khi gọi hàm
    n = getInteger();    

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

    if (flag == 1)
        printf("%d không phải là số nguyên tố.", n);
    else
        printf("%d là số nguyên tố.", n);

    return 0;
}

// hoàn trả lại số đã nhập bởi người dùng
int getInteger()       
{
    int n;

    printf("Hãy nhập một số nguyên dương: ");
    scanf("%d",&n);

    return n;
}

Hàm getInteger() lấy input từ người dùng rồi hoàn trả lại cho hàm main.


Ví dụ 3: Có argument nhưng không có return

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

int main()
{
    int n;

    printf("Hãy nhập một số nguyên dương: ");
    scanf("%d",&n);

    // n được dùng khi gọi hàm
    checkPrimeAndDisplay(n);

    return 0;
}

// void có nghĩa là không có biến trả về
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 không phải là số nguyên tố.",n);
    else
        printf("%d là só nguyên tố.", n);
}

Ví dụ 4: có cả argument và return

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

int main()
{
    int n, flag;

    printf("Hãy nhập một số nguyên dương: ");
    scanf("%d",&n);

    // n được dùng khi gọi hàm checkPrimeNumber() 
    // giá trị trả về được gán cho biến flag
    flag = checkPrimeNumber(n);

    if(flag == 1)
        printf("%d không phải là số nguyên tố",n);
    else
        printf("%d là số nguyên tố",n);

    return 0;
}

// int là dạng của biến được trả về
int checkPrimeNumber(int n)
{
    int i;

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

    return 0;
}
Series Navigation<< Hàm trong C – phần 2Hàm đệ quy trong C >>

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *