Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Bahasa C

Jenis Fungsi yang Ditentukan Pengguna dalam Pemrograman C

Jenis Fungsi yang Ditentukan Pengguna dalam Pemrograman C

Dalam tutorial ini, Anda akan belajar tentang pendekatan berbeda yang dapat Anda ambil untuk menyelesaikan masalah yang sama menggunakan fungsi.

4 program di bawah ini memeriksa apakah bilangan bulat yang dimasukkan pengguna adalah bilangan prima atau bukan.

Output dari semua program di bawah ini sama, dan kami telah membuat fungsi yang ditentukan pengguna di setiap contoh. Namun, pendekatan yang kami ambil dalam setiap contoh berbeda.


Contoh 1:Tidak ada argumen yang diteruskan dan tidak ada nilai yang dikembalikan

#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() fungsi mengambil input dari pengguna, memeriksa apakah itu bilangan prima atau bukan dan menampilkannya di layar.

Tanda kurung kosong di checkPrimeNumber(); pernyataan di dalam main() function menunjukkan bahwa tidak ada argumen yang diteruskan ke fungsi tersebut.

Jenis kembalinya fungsi adalah void . Oleh karena itu, tidak ada nilai yang dikembalikan dari fungsi tersebut.


Contoh 2:Tidak ada argumen yang diteruskan kecuali nilai yang dikembalikan

#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;
}

Tanda kurung kosong di n = getInteger(); pernyataan menunjukkan bahwa tidak ada argumen yang diteruskan ke fungsi. Dan, nilai yang dikembalikan dari fungsi ditetapkan ke n .

Di sini, getInteger() fungsi mengambil input dari pengguna dan mengembalikannya. Kode untuk memeriksa apakah suatu bilangan prima atau tidak ada di dalam main() fungsi.


Contoh 3:Argumen diteruskan tetapi tidak ada nilai balik

#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);
}

Nilai integer yang dimasukkan oleh pengguna diteruskan ke checkPrimeAndDisplay() fungsi.

Di sini, checkPrimeAndDisplay() fungsi memeriksa apakah argumen yang diteruskan adalah bilangan prima atau bukan dan menampilkan pesan yang sesuai.


Contoh 4:Argumen yang diteruskan dan nilai kembalian

#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;
}

Masukan dari pengguna diteruskan ke checkPrimeNumber() fungsi.

checkPrimeNumber() fungsi memeriksa apakah argumen yang diteruskan adalah prima atau tidak.

Jika argumen yang diteruskan adalah bilangan prima, fungsi mengembalikan 0. Jika argumen yang diteruskan adalah bilangan non-prima, fungsi mengembalikan 1. Nilai kembali ditetapkan ke flag variabel.

Tergantung pada apakah menandai adalah 0 atau 1, pesan yang sesuai dicetak dari main() fungsi.


Pendekatan mana yang lebih baik?

Yah, itu tergantung pada masalah yang Anda coba selesaikan. Dalam hal ini, meneruskan argumen dan mengembalikan nilai dari fungsi (contoh 4) lebih baik.

Sebuah fungsi harus melakukan tugas tertentu. checkPrimeNumber() fungsi tidak mengambil input dari pengguna atau menampilkan pesan yang sesuai. Ini hanya memeriksa apakah suatu bilangan prima atau tidak.


Bahasa C

  1. Ruang nama dalam Pemrograman C#
  2. Tipe Data C
  3. Operator Pemrograman C
  4. C Fungsi Pustaka Standar
  5. Variabel dan Tipe C++:int, double, char, string, bool
  6. Pointer dalam C:Apa itu Pointer dalam Pemrograman C? Jenis
  7. C Tutorial
  8. C - Tipe Data
  9. C - Fungsi
  10. C - Argumen Variabel