题目:求a的n次方-b的n次方

#include<stdio.h>
int pow(int begin,int end);
int main(void)
{int a,b,n,sum1,sum2;scanf("%d %d %d",&a,&b,&n);sum1=pow(a,n);//int pow中的return会返回一个值给调用 int pow的地方,因此
//需要设置一个变量来接住这个值,如果不需要这个值,那么可以把该函数设置成void类型sum2=pow(b,n);//printf("%d",sum1-sum2); return 0;
}int pow(int begin,int end)
{int sum=1;for(int i=0;i<end;i++){sum=sum*begin;}return sum;
}

自定义函数的函数原型声明要写在#预编译和main函数之间, 函数原型声明要和自定义函数保持一致。(最后的分号不能忘)

函数声明是可以省略形参名字的,而函数定义则不能。我们拿一个例子来说明

#include<stdio.h>
#include<assert.h>
int add(int,int);//这个是函数声明,形参名可以省略
int main(int argc,char *argv[])
{int a=1,b=2;int c;printf("add is %d\n",add(a,b));
return 0;
}int add(int a,int b)//函数定义,不能省略。道理很简单。
{                    //如果省略形参名的话,在函数体里该怎么使用他们呢?int c=0;c=a+b;//比如这里,如果我不说int a和int b,我用什么来表示他们呢?return c; //        所以这个时候形参名不能省略
} 

每个函数在被调用的时候,都会产生相应的复制变量(我们不如把他们称为替身演员吧)(术语一点就是传值?),在调用的函数里所有操作都是对这些替身演员做的。

替身演员们演的戏,跟我本明星有什么关系(www)

这也就是普通的swap并不会让a&b的值swap,只能通过指针来完成这样的工作。

如果还没学过指针,就这样理解吧。真正的a和b都在main中,派到自定义函数里的只不过是a和b的替身演员(不够准确,就这样粗略的理解吧)

#include<stdio.h>
void swap(int *a,int *b);
int main(void)
{int a=3;int b=4;swap(a,b);printf("a=%d b=%d",a,b);// a=3 b=4return 0;
}void swap(int a,int b)
{int j;j=a;a=b;b=j;
}
#include<stdio.h>
void swap(int *a,int *b);
int main(void)
{int a=3;int b=4;swap(&a,&b);printf("a=%d b=%d",a,b);// a=4 b=3return 0;
}void swap(int *a,int *b)
{int j;j=*a;a=*b;*b=j;
}

唯一有红色字的小标题。(如果你会了链表结合例子更好)https://mp.csdn.net/postedit/102489869

自定义函数中调用自定义函数

很显然是可以的,有一个非常经典的例子就是函数的递归。编译器在编译的时候,在你的自定义函数A里发现了一个自定义函数B,编译器会马上在你的源代码文件中寻找这个自定义函数B,找到了以后会把自定义函数A里的调用自定义函数B语句替换成自定义函数B 的语句

先来一个普通的例子

#include<stdio.h>
void hello();
void world();
int main(int argc,char *argv[])
{hello();
return 0;
}void hello()
{printf("hello,");world();//在hello自定义函数中调用world自定义函数
} void world()
{printf("world!");
}
看看输出的是啥

递归应该算是一种特例,调用的函数刚好是它自己本身(itself)。因为递归像一个俄罗斯套娃,我们需要设置一些来让递归在恰当的时机结束(说人话就是要有条件判断)比如下面的例子,我们输出0-4。

#include<stdio.h>
void numberPrint(int i);
int main(int argc,char *argv[])
{int i=0;numberPrint(i);
return 0;
}void numberPrint(int i)
{if(i<5)//这就是我们设置的条件,来让递归在恰当的时候结束{printf("now i is %d\n",i);i++;numberPrint(i);}
} 

怎么设置合适的条件呢?我的另一篇关于python自定义函数的blog里有写到。Python自定义函数(点一下这里就进入传送门了)进去以后往下面翻找函数的递归

C语言自定义函数的调用相关推荐

  1. c语言学习-自定义函数并调用将一个字符串中的小写字母改为大写字母(数组元素和数组名作函数参数)

    c语言自定义函数并调用将一个字符串中的小写字母改为大写字母(数组元素和数组名作函数参数) 程序流程图: 代码: #include<stdio.h> char strupr(char ch[ ...

  2. C语言:自定义函数中调用自定义函数的方法

    自定义函数中调用自定义函数 在我们编写C语言程序时,可以将要经常用到的或者有自己单独作用的那一部分代码独立成一个函数,不仅可以简化我们的程序,还可以使我们的程序更加可见话. 正文阿巴阿巴 方法一:直接 ...

  3. c语言学习-自定义函数并调用求1-100的累计和

    自定义函数并调用求1-100的累计和 程序流程图: 代码: #include<stdio.h> int sum(int m ) {int f; long s=0; for(f=1;f< ...

  4. 《零基础看得懂的C语言入门教程 》——(十一)C语言自定义函数真的很简单

    一.学习目标 了解C语言的自定义函数的使用方法 了解C语言自定义函数的传参 了解C语言自定义函数的返回值 目录 C语言真的很难吗?那是你没看这张图,化整为零轻松学习C语言. 第一篇:(一)脱离学习误区 ...

  5. c语言自定义函数格式化,自定义函数的形式

    c语言程序设计题:请用自定义函数的形式编程实现,代码: #include 请用自定义函数的形式编程实现 CSS布局HTML小编今天和大家分享 s = m. + n. + k.,m.n.k 从键盘输入( ...

  6. C语言自定义函数如何返回数组

    C语言自定义函数如何返回数组  C语言研究中心  CTO  9个月前 (01-28)  4759次浏览  5个评论 最近看到一些同学问题,有提到说:如何在一个函数中返回数组呢? 能否直接在自定义 函数 ...

  7. c语言中自定义函数返回数组,C语言自定义函数返回数组的方法(图文详解)

    C语言自定义函数返回数组的方法(图文详解) 最近看到一些同学问题,有提到说:如何在一个函数中返回数组呢? 能否直接在自定义 函数中,写成char *类型返回值,直接返回呢?,代码如下: 直接返回str ...

  8. R语言自定义函数计算dataframe每列中的缺失值NA的个数、缺失值问题及其填充示例

    R语言自定义函数计算dataframe每列中的缺失值NA的个数.缺失值问题及其填充示例 目录

  9. matlab定义和调用函数m,Matlab学习-自定义函数与调用

    Matlab的自定义函数与调用 网上关于这方面内容应该比较全,这里只简单介绍常用的2种方法: 1.在一个.m文件中定义函数,然后在命令文件中调用 新建一个.m文件后,在里面定义函数按照以下方法: fu ...

最新文章

  1. python取百位数个位数_使用Python把数值形式的金额变成人类可读形式
  2. TF之LSTM:利用基于顺序的LSTM回归算法对DIY数据集sin曲线(蓝虚)预测cos(红实)(TensorBoard可视化)
  3. 在Android应用外获取app的签名
  4. 数据结构-堆 Java实现
  5. idea中本地git如何切换分支
  6. android隐式广播和显式广播是什么,在Android8.0上突破隐式广播的限制
  7. 袁玉玮:简介人工智能在基金界的应用现状 (二)卖方交易员被冲击
  8. 新手指南|欢迎来到CSDN
  9. 图书信息管理系统的设计与实现
  10. 基于RNA-seq的基因表达分析
  11. RuoYi(若依)平台页面缓存无效
  12. 2M字节Flash Rom存储器W25Q16/W25X16 认识Flash
  13. 39. 组合总和(Python)
  14. WAP 2.0 VS WEB 2.0
  15. 关于win10电脑突然无法显示输入法的解决方案
  16. 软件测试工程师笔试题带答案(二)
  17. 关于设定校园二手租赁系统的计划、功能及建议
  18. 转:著名的100个管理定律点评3 -- 灵活有效的激励手段
  19. 导入shp数据到postgis库
  20. [系统安全] 二十六.WannaCry勒索病毒分析 (2)MS17-010漏洞利用及蠕虫解析

热门文章

  1. jq实现多开关效果互不影响
  2. 类,__dift__,__len__,__add__,__new__,__init__
  3. Jmeter--基础使用
  4. 如意人生守护·典藏版:论赔付力度,这款产品是碾压级的!
  5. 【冰糖R语言】(串列)对象不能强制改变成‘double‘种类
  6. 微信小程序换量心得—微量小程序联盟
  7. 数组12:激光与巧克力
  8. hey 安装_如何使用“ Hey Siri”在Mac上启动Siri
  9. 论文阅读-Attention Bottlenecks for Multimodal Fusion(多模态特征融合)
  10. 华为云服务器(Centos7)安装与卸载mysql8