课堂笔记

#include <iostream>

using  namespace  std;

#include <time.h>

#include <stdlib.h>

练习:1:设计一个函数,其功能是计算一个正整数n的阶乘。

2:设计一个函数,其功能是将作为参数的正整数反转,比如123,变成321.

//返回值:函数值, 如果有值类型,你需要返回相应类型的一个值

//()中的参数列表: 自变量,你要操作的对象

//

int fact(int n)

{

int i,f;

f=1;

for(i=1;i<=n;i++)

{

f=f*i;

}

return f;

}

//参数:正整数

//函数值:逆转之后的正整数

int reverse(int n)

{

int m=0;

do

{

m=m*10+n%10;  //n=123 ,m=3,n=12,m=32

n=n/10;        //n=12,1

}while(n!=0);

return m;

}

int main(int argc, char** argv) {

cout<<fact(10)<<endl;

cout<<reverse(100)<<endl;

return 0;

}

#include <iostream>

using  namespace  std;

#include <time.h>

#include <stdlib.h>

//递归函数:直接或者间接调用自己的函数

//1.演示普通的函数定义与调用

void f()

{

cout<<"in function f."<<endl;

}

void g()

{

cout<<"in function g."<<endl;

f();

}

void h()

{

cout<<"in function h."<<endl;

g();

}

int main(int argc, char** argv) {

h();

return 0;

}

#include <iostream>

using  namespace  std;

#include <time.h>

#include <stdlib.h>

//递归函数:直接或者间接调用自己的函数

//阶乘:  n!=n*(n-1)!,

//递推规律:f(n)=n!    f(n)=n*f(n-1);

//递归出口:0!=1;  f(0)=1;

double f(double n)

{

if(n==0)

return 1;

else

return n*f(n-1);

//main   f(5)        f(4)       f(3)    f(2)     f(1)

//f(5)   5*f(4)      4*f(3)     3*f(2)  2*f(1)  1*f(0)

//120    5*4*3*2*1*1 4*3*2*1*1  3*2*1*1 2*1*1   1*1

}

//fibbonacci数列,递归写法

//递归出口:f(1)=f(2)=1,   递推规律:f(n)=f(n-1)+f(n-2)

int g(int n)

{

if(n==1 || n==2)

return 1;

else

return g(n-1)+g(n-2);

}

//缺点:递归函数的缺点是效率低,但优点是设计容易

int main(int argc, char** argv) {

cout<<f(5)<<endl;

for(int i=1;i<=10;i++)

cout<<g(i)<<endl;

return 0;

}

代码编写

#include <iostream>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop *///1.阶乘
int f(int n)
{if(n==0)return 1;elsen=n*f(n-1);return n;} //2.斐波那契数列
int g(int i)
{if(i==1 || i==2)return 1;else return g(i-1)+g(i-2);
}//3.练习:一个人赶着鸭子去每个村庄卖,每经过一个村子卖去所赶鸭子的一半又一只。//这样他经过了七个村子后还剩两只鸭子,问他出发时共赶多少只鸭子?//经过每个村子卖出多少只鸭子??利用递归函数来实现该算法。
int d(int c)
{if(c==8)return 2;elsereturn d(c+1)*2+2;}int main(int argc, char** argv) {
//  int p;
//  cout<<f(10)<<endl;
//  for(p=1;p<=10;p++)
//  cout<<g(p)<<endl;cout<<d(1)<<endl;return 0;
}
void f()
{cout<<"in function f."<<endl;}
void g()
{cout<<"in function g."<<endl;f();
}
void h()
{cout<<"in function h."<<endl;g();
} int main(int argc, char** argv) { h();    return 0;
}

学习总结

进一步理解了函数,自己可以简单运用了,不过还是在入门级别

C语言第十九讲——函数(2)相关推荐

  1. r library car_第三十九讲 R语言-线性回归:自变量中存在分类变量时

    当我们提到"线性"回归时,特指的是因变量(结果变量)为连续性变量,与自变量(预测变量)有线性关系,而对自变量(预测变量)并没有要求一定要是连续性变量.前面我们已经提到,当自变量是连 ...

  2. C++面向对象高级编程十九讲

    文章目录 0 背景 1 内容 0 背景 因为本人的C++基础不是很扎实,很多面向对象的基本语法掌握的不是很熟练,导致写程序出错时,经常会犯错,于是就去网上找到了侯捷老师的C++课进行观摩学习. 本文是 ...

  3. 以下关于java的GUI菜单描述_第十九讲 菜单和JavaGUI综合设计

    第十九讲菜单和JavaGUI综合设计 主要内容 菜单(JMenuBar.JMenu.JmenuItem) 菜单项的事件侦听处理 颜色选择器JColorChooser 文件选择器JFileChooser ...

  4. 趣谈网络协议笔记-二(第十九讲)

    趣谈网络协议笔记-二(第十九讲) HttpDNS:网络世界的地址簿也会指错路 自勉 勿谓言之不预也 -- 向为祖国牺牲的先烈致敬! 引用 dns缓存刷新时间是多久?dns本地缓存时间介绍 - 东大网管 ...

  5. 【genius_platform软件平台开发】第七十九讲:Linux系统中可执行程序后台运行的几种方式

    [genius_platform软件平台开发]第七十九讲:Linux系统中可执行程序后台运行的几种方式 1. 问题描述 2. & 符号 3. nohup指令 4. ctrl + z.jobs. ...

  6. 名词解释第二十九讲:搬砖

    这里是王团长区块链学院,与最优秀的区块链人一起成长!今天给大家讲讲搬砖. 点击观看视频教程:名词解释第二十九讲:搬砖 2017年,有一个非常热门的词叫"搬砖",当然,这个" ...

  7. 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第十九讲:apache+php+mysql开发环境搭建(wamp)

    陈力:传智播客古代 珍宝币 泡泡龙游戏开发第十九讲:apache+php+mysql开发环境搭建(wamp) window环境下进行网站建设时,必须要进行wamp环境的搭建.本文介绍了如果配置apac ...

  8. 第十九讲:爱情:如何让爱情天长地久 第二十讲:幽默 第二十一讲:爱情自尊

    (注:此为课程第十九课,更新于2017年7月16日) 大家好! 今天我们继续谈论爱情,讲之前先说一下,一位叫Nadia的同学,你的钥匙链落在这教室了,就在我这里,课后请来我这里取. 那我们来讲讲爱情吧 ...

  9. 【C语言进阶深度学习记录】二十九 main函数与命令行参数

    文章目录 1 main函数的返回值 2 main函数的参数 2.1 main函数的参数的代码案例分析 3 main函数不一定是程序中第一个执行的函数 4 总结 1 main函数的返回值 main函数是 ...

最新文章

  1. CYQ.Data.ProjectTool 项目配置工具发布(包源码)
  2. ASP.NET Core Web API下事件驱动型架构的实现(三):基于RabbitMQ的事件总线
  3. 只能是做的HTML5审批流项目
  4. java如何快速抛出异常,异常 - 如何抛出异常 - 《Java 编程要点(Essential Java)》 - 书栈网 · BookStack...
  5. 机器学习 Machine Learning中向量化矩阵化的技巧
  6. Arcgis javascript那些事儿(十五)——影像服务的发布与使用
  7. dmg镜像如何写入u盘_最全macOS官方全家桶原版系统镜像
  8. Java主要学习哪些内容
  9. 齐岳|马钱苷酸小麦麦清白蛋白纳米粒|雷公藤红素乳清白蛋白纳米粒Celastrol-whey protein
  10. Android基础学习(十五)—— 序列化与反序列化(包括 JSON、GSON))
  11. 依分布收敛的定义细节
  12. 差异基因p为0_RNAseq数据分析文献22差异基因与临床数据相关性分析
  13. 常用、免费的API接口网址
  14. 力扣(83.643)补8.29
  15. 加密解密,MySQL单行函数,数学函数字符串日期时间,流程控制,完整详细可收藏查询SQL
  16. NET连接mysql字符串
  17. Java+MySQL基于SSM的二手玩具交换网站
  18. 部分ADSL猫的默认密码
  19. ModuleNotFoundError: No module named ‘django‘
  20. 世界上第一台电子数字式计算机诞生于美国,世界上公认的第一台电子数字计算机诞生于哪年哪个国家?...

热门文章

  1. Matlab如何打开新版本程序,求助:老程序在新版本的matlab中运行
  2. 王道作业Python
  3. informatica使用问题汇总
  4. C发展史: KR C/C89/C99/C11 以及 C++发展史: C++98/C++03/C++11
  5. 第三方服务之Bmob——答题系统小项目
  6. 基于web的在线考试系统的设计与开发
  7. 达梦数据库角色详解——VTI、SOI
  8. OCA/OCP Oracle 数据库12c考试指南读书笔记:第15章: Oracle Storage
  9. 深入理解递归:美丽的科赫雪花
  10. ERP采购管理系统软件