Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Язык C

Типы пользовательских функций в программировании на C

Типы пользовательских функций в программировании на C

В этом руководстве вы узнаете о различных подходах, которые можно использовать для решения одной и той же проблемы с помощью функций.

Эти 4 программы ниже проверяют, является ли целое число, введенное пользователем, простым числом или нет.

Вывод всех этих программ ниже одинаков, и в каждом примере мы создали определяемую пользователем функцию. Однако подход, который мы использовали в каждом примере, отличается.

<час>

Пример 1. Без передачи аргументов и без возвращаемого значения

#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() Функция принимает ввод от пользователя, проверяет, является ли это простым числом, и отображает его на экране.

Пустые скобки в checkPrimeNumber(); оператор внутри main() указывает, что в функцию не передается аргумент.

Тип возвращаемого значения функции — void. . Следовательно, функция не возвращает никакого значения.

<час>

Пример 2:аргументы не передаются, но возвращается значение

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

Пустые скобки в n = getInteger(); указывает, что в функцию не передается аргумент. И значение, возвращаемое функцией, присваивается n .

Здесь getInteger() функция принимает ввод от пользователя и возвращает его. Код для проверки того, является ли число простым или нет, находится внутри main() функция.

<час>

Пример 3. Аргумент передан, но нет возвращаемого значения

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

Целочисленное значение, введенное пользователем, передается в checkPrimeAndDisplay() функция.

Здесь checkPrimeAndDisplay() Функция проверяет, является ли переданный аргумент простым числом, и выводит соответствующее сообщение.

<час>

Пример 4:переданный аргумент и возвращаемое значение

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

Ввод от пользователя передается в checkPrimeNumber() функция.

checkPrimeNumber() функция проверяет, является ли переданный аргумент простым или нет.

Если переданный аргумент является простым числом, функция возвращает 0. Если переданный аргумент не является простым числом, функция возвращает 1. Возвращаемое значение присваивается флагу переменная.

В зависимости от того, является ли флаг равно 0 или 1, соответствующее сообщение печатается из main() функция.

<час>

Какой подход лучше?

Ну, это зависит от проблемы, которую вы пытаетесь решить. В этом случае лучше передать аргумент и вернуть значение из функции (пример 4).

Функция должна выполнять определенную задачу. checkPrimeNumber() функция не принимает ввод от пользователя и не отображает соответствующее сообщение. Он только проверяет, является ли число простым или нет.


Язык C

  1. Пространства имен в программировании на C#
  2. C Типы данных
  3. Операторы программирования на C
  4. Стандартные библиотечные функции C
  5. Переменные и типы С++:int, double, char, string, bool
  6. Указатели в C:что такое указатели в программировании на C? Типы
  7. C Учебник
  8. C — Типы данных
  9. С - Функции
  10. C - Переменные аргументы