Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> C Taal

Soorten door de gebruiker gedefinieerde functies in C-programmering

Soorten door de gebruiker gedefinieerde functies in C-programmering

In deze tutorial leer je over verschillende benaderingen die je kunt gebruiken om hetzelfde probleem op te lossen met behulp van functies.

Deze 4 programma's hieronder controleren of het door de gebruiker ingevoerde gehele getal een priemgetal is of niet.

De uitvoer van al deze programma's hieronder is hetzelfde en we hebben in elk voorbeeld een door de gebruiker gedefinieerde functie gemaakt. De aanpak die we in elk voorbeeld hebben gevolgd, is echter anders.


Voorbeeld 1:Geen argumenten doorgegeven en geen retourwaarde

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

De checkPrimeNumber() functie neemt invoer van de gebruiker, controleert of het een priemgetal is of niet en geeft het weer op het scherm.

De lege haakjes in checkPrimeNumber(); statement binnen de main() functie geeft aan dat er geen argument aan de functie is doorgegeven.

Het retourtype van de functie is void . Daarom wordt er geen waarde geretourneerd door de functie.


Voorbeeld 2:Geen argumenten doorgegeven maar een retourwaarde

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

De lege haakjes in de n = getInteger(); statement geeft aan dat er geen argument wordt doorgegeven aan de functie. En de waarde die door de functie wordt geretourneerd, wordt toegewezen aan n .

Hier, de getInteger() functie neemt input van de gebruiker en geeft deze terug. De code om te controleren of een getal een priemgetal is of niet, staat binnen de main() functie.


Voorbeeld 3:argument doorgegeven maar geen retourwaarde

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

De door de gebruiker ingevoerde integerwaarde wordt doorgegeven aan de checkPrimeAndDisplay() functie.

Hier, de checkPrimeAndDisplay() functie controleert of het doorgegeven argument een priemgetal is of niet en geeft het juiste bericht weer.


Voorbeeld 4:Argument doorgegeven en een retourwaarde

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

De invoer van de gebruiker wordt doorgegeven aan de checkPrimeNumber() functie.

De checkPrimeNumber() functie controleert of het doorgegeven argument een priemgetal is of niet.

Als het doorgegeven argument een priemgetal is, retourneert de functie 0. Als het doorgegeven argument een niet-priemgetal is, retourneert de functie 1. De geretourneerde waarde wordt toegewezen aan de vlag variabel.

Afhankelijk van of vlag 0 of 1 is, wordt een passend bericht afgedrukt vanaf de main() functie.


Welke aanpak is beter?

Welnu, het hangt af van het probleem dat u probeert op te lossen. In dit geval is het beter om een ​​argument door te geven en een waarde uit de functie terug te geven (voorbeeld 4).

Een functie moet een specifieke taak uitvoeren. De checkPrimeNumber() functie vraagt ​​geen input van de gebruiker en geeft ook niet het juiste bericht weer. Het controleert alleen of een getal een priemgetal is of niet.


C Taal

  1. Naamruimten in C#-programmering
  2. C Gegevenstypen
  3. C Programmeren van operators
  4. C Standaard bibliotheekfuncties
  5. C++ variabelen en typen:int, double, char, string, bool
  6. Pointers in C:Wat is Pointer in C-programmering? Soorten
  7. C Zelfstudie
  8. C - Gegevenstypen
  9. C - Functies
  10. C - Variabele argumenten
  11. C# - Variabelen