计算机的定义函数,计算机当中的函数,用C语言实现函数的定义,对简化程序非常重要...

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

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

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

对函数定义的详细讲解

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

226759341_1_20210722022854333

226759341_2_20210722022854598

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

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

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

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

226759341_3_20210722022854708

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

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

226759341_4_20210722022854911

具体实例

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

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

226759341_5_2021072202285567

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

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

代码实现:

#include

void evenodd(int n){

if(n%2==0){//取余为0

printf('it is an even\n');

}

else{

printf('it is a odd\n');

}

}

int main() {

//输入一个整数,主要是用来判断的

int number = 0;//定义一个整数

scanf('%d', &number);

evenodd(number);

}

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

226759341_6_20210722022855208

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

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

226759341_7_20210722022855333

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

226759341_8_20210722022855458

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

代码实现:#include

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

}

结果测试:

226759341_9_20210722022855583

总结

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值