c函数定义格式(c语言必须背诵18个经典程序)

Դ新浪

ߣ整站优化

12

2021-11-02 19:59:58

今天,我们来谈谈C语言中的函数。注意这里的函数不是数学上的函数,不是自变量或因变量,而是程序。

此外,这个程序可以被另一个程序直接引用,也可以被称为子程序或子方法。

就像每次写代码都会率先写一个主函数,就是int main(){},这是一个主函数,所以这个函数之外的其他函数都可以称为子函数。

对函数定义的详细讲解

然而如下图所示,对于int main(){},它实际上有一个返回值,要写成return 0。之所以没有写在这里,是因为Xcode的默认返回值是0,但为了更严谨,还是写出来比较好。

c函数定义的格式(c语言必背18个经典程序)

c函数定义的格式(c语言必背18个经典程序)

c函数定义的格式(c语言必背18个经典程序)

c函数定义的格式(c语言必背18个经典程序)

常用的类型名称有很多,比如void、long、int等等。

我主要用int,当然看到这里,有些朋友会有疑问,int main和void main有什么区别?

其实区别很简单。你可以看到int和void,关键的区别在于它们。

Int类型表示返回值是int,而void没有返回值。

c函数定义的格式(c语言必背18个经典程序)

c函数定义的格式(c语言必背18个经典程序)

但是我们在编写的时候,main方法一般使用int main(){},因为很多编译器都需要一个返回值,默认返回值为0,而void没有返回值,可能会出现一些问题。

就像mac上的Xcode一样,使用void main后会有一个警告,所以为了更好的移植代码,我选择了使用int main(){}。

c函数定义的格式(c语言必背18个经典程序)

c函数定义的格式(c语言必背18个经典程序)

具体实例

说了这么多,看了这么多,还不如实际给几个问题有效。我计划在这里提两个问题,这是我前段时间提到的。

,一道很简单,就是对奇偶数的判断,另一道则是输出斐波那契数列,要求使用函数的形式做出这两道题。

首先是奇偶数判断,给出流程图:

c函数定义的格式(c语言必背18个经典程序)c函数定义的格式(c语言必背18个经典程序)

注意,为何我不把子函数放在主函数的后面呢,这里的原因我之后会提到。

其实思路非常明确,就是先写子函数,子函数的目的就是判断奇偶数,那奇偶数的判断条件我昨天也讲过了,就是除以2取余数,判断是否为0,为0则为偶数,否则为奇数。

代码实现:

#include<stdio.h>
void evenodd(int n){
    if(n%2==0){//取余为0
        printf("it is an evenn");
    }
    else{
        printf("it is a oddn");
    }
}
int main() {
    //输入一个整数,主要是用来判断的
    int number = 0;//定义一个整数
    scanf("%d", &number);
    evenodd(number);
}

至于为什么不把子函数这一块给放在后面呢,原因在于:

c函数定义的格式(c语言必背18个经典程序)c函数定义的格式(c语言必背18个经典程序)

C99它是不支持隐式声明的,C语言啊是自上而下运行的,所以按照上图这样的顺序运行下去,在主函数里,压根就没有定义过evenodd,所以解决办法就是把evenodd的函数放到主函数前面去。

如下图所示,结果测试也是正确的。

c函数定义的格式(c语言必背18个经典程序)c函数定义的格式(c语言必背18个经典程序)

其次是斐波那契数列,给出流程图:

c函数定义的格式(c语言必背18个经典程序)c函数定义的格式(c语言必背18个经典程序)

与奇偶数判断相比,斐波那契数列在子函数中较为复杂了些,但是在主函数中就很简单了,直接调用即可。

代码实现:

#include<stdio.h>
void fibonacci(){
    int a = 0;
    int b = 1;
    int sum = 0;
    for(int i = 0; i < 10; i++){
        printf("%d ",sum);
        sum = a+b;
        b = a;
        a = sum;
    }
    printf("n");
}
int main() {
    fibonacci();
}

结果测试:

c函数定义的格式(c语言必背18个经典程序)c函数定义的格式(c语言必背18个经典程序)

总结

函数其实并不难,但是这也是一个需要掌握的方法,毕竟掌握了函数,在写程序的时候就能加快速度,减少重复工作。

佭ϴý Ѷ Media8ý

在线客服

外链咨询

扫码加我微信

微信:juxia_com

返回顶部