Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Lenguaje C

Tipos de funciones definidas por el usuario en programación C

Tipos de funciones definidas por el usuario en programación C

En este tutorial, aprenderá acerca de los diferentes enfoques que puede tomar para resolver el mismo problema usando funciones.

Estos 4 programas a continuación verifican si el número entero ingresado por el usuario es un número primo o no.

El resultado de todos estos programas a continuación es el mismo, y hemos creado una función definida por el usuario en cada ejemplo. Sin embargo, el enfoque que hemos tomado en cada ejemplo es diferente.


Ejemplo 1:No se pasaron argumentos y no se devolvió ningún valor

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

El checkPrimeNumber() La función toma información del usuario, verifica si es un número primo o no y lo muestra en la pantalla.

Los paréntesis vacíos en checkPrimeNumber(); declaración dentro del main() función indica que no se pasa ningún argumento a la función.

El tipo de retorno de la función es void . Por lo tanto, la función no devuelve ningún valor.


Ejemplo 2:No se pasan argumentos pero se devuelve un valor

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

Los paréntesis vacíos en el n = getInteger(); instrucción indica que no se pasa ningún argumento a la función. Y, el valor devuelto por la función se asigna a n .

Aquí, el getInteger() La función toma la entrada del usuario y la devuelve. El código para comprobar si un número es primo o no está dentro del main() función.


Ejemplo 3:argumento aprobado pero sin valor de retorno

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

El valor entero ingresado por el usuario se pasa al checkPrimeAndDisplay() función.

Aquí, el checkPrimeAndDisplay() La función verifica si el argumento pasado es un número primo o no y muestra el mensaje apropiado.


Ejemplo 4:Argumento pasado y valor de retorno

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

La entrada del usuario se pasa al checkPrimeNumber() función.

El checkPrimeNumber() La función comprueba si el argumento pasado es primo o no.

Si el argumento pasado es un número primo, la función devuelve 0. Si el argumento pasado es un número no primo, la función devuelve 1. El valor devuelto se asigna a la bandera variables.

Dependiendo de si bandera es 0 o 1, se imprime un mensaje apropiado desde el main() función.


¿Qué enfoque es mejor?

Bueno, depende del problema que estés tratando de resolver. En este caso, es mejor pasar un argumento y devolver un valor de la función (ejemplo 4).

Una función debe realizar una tarea específica. El checkPrimeNumber() La función no toma información del usuario ni muestra el mensaje apropiado. Solo comprueba si un número es primo o no.


Lenguaje C

  1. Espacios de nombres en la programación de C#
  2. Tipos de datos C
  3. Operadores de programación en C
  4. Funciones de biblioteca estándar de C
  5. Variables y tipos de C++:int, double, char, string, bool
  6. Punteros en C:¿Qué es un puntero en la programación C? Tipos
  7. Tutorial C
  8. C - Tipos de datos
  9. C - Funciones
  10. C - Argumentos variables
  11. C# - Variables