行业新闻
c函数定义的格式(c语言必背18个经典程序)
2022-02-23 16:46  浏览:2

今天我们来提一提C语言中的函数,注意,这里的函数可不是数学术语中的函数,不是自变量、因变量这种,而是一段程序。

且,该段程序是可以被另一段程序直接引用的,也可以叫做是子程序或者叫做子方法。

正如我每次在写代码的时候,都会率先写好一个主函数,也就是int main(){},这就是一个主函数,那在该函数外的其他函数,就可以称作为子函数了。

对函数定义的详细讲解

如下图所示,不过关于int main(){}的话,其实它有一个返回值,也就是要用return 0写出来的,之所以我这里没写是因为Xcode默认返回值为0,不过为了严谨一些,还是写上比较好。

我们一般常用的类型名有很多void、long、int等等等等。

我主要用的就是int,当然,看到这儿,有的小伙伴会有疑问,int main和void main的区别是什么呢。

其实区别很简单,可以看到int和void两个就知道,关键区别在于这两者。

int类型说明返回值为int,而void呢,就是没有返回值。

不过我们一般在写的时候,主方法普遍用int main(){},原因在于很多编译器都是要求有返回值的,且默认返回值为0,而void呢是没有返回值的,可能会产生一些问题。

正如mac上的Xcode一样,用了void main之后就出现警告了,所以为了更好地移植代码,所以我选择使用int main(){}

具体实例

那话讲了那么多,看了那么多,都不如实际给出几道题来得有效,我这里呢打算给出两道题,也就是前段时间我提到过的,一道很简单,就是对奇偶数的判断,另一道则是输出斐波那契数列,要求使用函数的形式做出这两道题。

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

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

其实思路非常明确,就是先写子函数,子函数的目的就是判断奇偶数,那奇偶数的判断条件我昨天也讲过了,就是除以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);
}

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

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

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

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

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

代码实现:

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

结果测试:

总结

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