Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> C Sprache

Arten von benutzerdefinierten Funktionen in der C-Programmierung

Arten benutzerdefinierter Funktionen in der C-Programmierung

In diesem Tutorial lernen Sie verschiedene Ansätze kennen, mit denen Sie dasselbe Problem mithilfe von Funktionen lösen können.

Diese 4 Programme unten prüfen, ob die vom Benutzer eingegebene Ganzzahl eine Primzahl ist oder nicht.

Die Ausgabe aller dieser Programme unten ist gleich, und wir haben in jedem Beispiel eine benutzerdefinierte Funktion erstellt. Der Ansatz, den wir in jedem Beispiel gewählt haben, ist jedoch anders.


Beispiel 1:Keine Argumente übergeben und kein Rückgabewert

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

Der checkPrimeNumber() Die Funktion nimmt Eingaben vom Benutzer entgegen, prüft, ob es sich um eine Primzahl handelt oder nicht, und zeigt sie auf dem Bildschirm an.

Die leeren Klammern in checkPrimeNumber(); -Anweisung innerhalb des main() Funktion gibt an, dass kein Argument an die Funktion übergeben wird.

Der Rückgabetyp der Funktion ist void . Daher wird von der Funktion kein Wert zurückgegeben.


Beispiel 2:Keine Argumente übergeben, aber ein Rückgabewert

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

Die leeren Klammern im n = getInteger(); -Anweisung gibt an, dass kein Argument an die Funktion übergeben wird. Und der von der Funktion zurückgegebene Wert wird n zugewiesen .

Hier die getInteger() Die Funktion nimmt Eingaben vom Benutzer entgegen und gibt sie zurück. Der Code, um zu überprüfen, ob eine Zahl eine Primzahl ist oder nicht, befindet sich in main() Funktion.


Beispiel 3:Argument übergeben, aber kein Rückgabewert

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

Der vom Benutzer eingegebene ganzzahlige Wert wird an checkPrimeAndDisplay() übergeben Funktion.

Hier die checkPrimeAndDisplay() Funktion prüft, ob das übergebene Argument eine Primzahl ist oder nicht und zeigt die entsprechende Meldung an.


Beispiel 4:Übergebenes Argument und Rückgabewert

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

Die Eingabe des Benutzers wird an checkPrimeNumber() übergeben Funktion.

Die checkPrimeNumber() Funktion prüft, ob das übergebene Argument eine Primzahl ist oder nicht.

Wenn das übergebene Argument eine Primzahl ist, gibt die Funktion 0 zurück. Wenn das übergebene Argument keine Primzahl ist, gibt die Funktion 1 zurück. Der Rückgabewert wird dem flag zugewiesen Variable.

Je nachdem ob flag 0 oder 1 ist, wird eine entsprechende Meldung von main() ausgegeben Funktion.


Welcher Ansatz ist besser?

Nun, es hängt von dem Problem ab, das Sie lösen möchten. In diesem Fall ist es besser, ein Argument zu übergeben und einen Wert von der Funktion (Beispiel 4) zurückzugeben.

Eine Funktion soll eine bestimmte Aufgabe erfüllen. Die checkPrimeNumber() Die Funktion nimmt keine Eingaben vom Benutzer entgegen und zeigt auch keine entsprechende Meldung an. Es prüft nur, ob eine Zahl eine Primzahl ist oder nicht.


C Sprache

  1. Namespaces in der C#-Programmierung
  2. C-Datentypen
  3. C-Programmieroperatoren
  4. C-Standardbibliotheksfunktionen
  5. C++-Variablen und -Typen:int, double, char, string, bool
  6. Pointer in C:Was ist Pointer in der C-Programmierung? Typen
  7. C-Tutorial
  8. C - Datentypen
  9. C - Funktionen
  10. C - Variable Argumente