亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
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() 内的语句 function 表示没有参数传递给函数。

函数的返回类型是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。返回值赋给 flag 变量。

取决于是否 flag 为 0 或 1,则从 main() 打印适当的消息 功能。


哪种方法更好?

好吧,这取决于您要解决的问题。在这种情况下,传递参数并从函数中返回一个值(示例 4)会更好。

一个函数应该执行一个特定的任务。 checkPrimeNumber() 函数不接受用户的输入,也不显示适当的消息。它只检查一个数字是否是素数。


C语言

  1. C# 编程中的命名空间
  2. C 数据类型
  3. C 编程运算符
  4. C 标准库函数
  5. C++ 变量和类型:int、double、char、string、bool
  6. C 中的指针:C 编程中的指针是什么?类型
  7. C 教程
  8. C - 数据类型
  9. C - 函数
  10. C - 变量参数
  11. C# - 变量
  12. 不同类型的扳手及其功能