C语言项目化教程(基于智能制造软件) 课件 项目六任务四 根据驾驶员的工作年限求工资的数额 (嵌套和递归)_第1页
C语言项目化教程(基于智能制造软件) 课件 项目六任务四 根据驾驶员的工作年限求工资的数额 (嵌套和递归)_第2页
C语言项目化教程(基于智能制造软件) 课件 项目六任务四 根据驾驶员的工作年限求工资的数额 (嵌套和递归)_第3页
C语言项目化教程(基于智能制造软件) 课件 项目六任务四 根据驾驶员的工作年限求工资的数额 (嵌套和递归)_第4页
C语言项目化教程(基于智能制造软件) 课件 项目六任务四 根据驾驶员的工作年限求工资的数额 (嵌套和递归)_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言程序设计项目六模块化设计C语言程序设计项目八项目六01

显示车辆数据(无参数无返回值类型)02根据车辆品牌,显示车辆数据(有参数无返回值类型)

03根据车辆品牌,显示销售额(有返回值类型)04

根据驾驶员的工作年限,求工资的数额(嵌套和递归)

引入:

在函数调用过程中,会出现一个子函数调用另外一个子函数,或者自己调用自己的函数类型,本次课程我们就来研究这种情况04项目六任务四C语言程序设计

(2)行进中的分叉路口任务目标

已知驾驶员的工资和工作年限相关,第一年的工资为5000,以后每年增长10%,求第12年的工资。知识储备C语言程序设计

(2)行进中的分叉路口(1)树生长程中的分叉一、函数的嵌套在调用一个函数的过程中,又调用另一个函数。

下面是函数嵌套调用的大致模型:#include<stdio.h>voidf1();voidf2(intn);voidmain(){f1();}f1(){f2(5);}voidf2(intn){inti;for(inti;i<=n;i++)rintf(“*”);}知识储备C语言程序设计

(2)行进中的分叉路口(1)树生长程中的分叉二、函数的递归在调用一个函数的过程中,又出现直接或间接地调用该函数本身3.示例2#include<stdio.h>voidf(intn){if(n==0)return;printf("%d\n",n);

f(--n);//直接递归}voidmain(){intnum=5;f(num);}项目六任务四C语言程序设计

(2)行进中的分叉路口(1)树生长程中的分叉典型案例1某集团对于驾驶员的工资是根据是否出现交通事故而定,如果不出事故,驾驶员下一月的工资会增加上月工资的10%,一个驾驶员1月份的工资为3000元,这一年都开车都没有出事故,则本年一共领取了多少工资?(备注一个函数求和,一个函数求每个月的工资)项目六任务四C语言程序设计

(1)树生长程中的分叉典型案例1#include"stdio.h"doublesalaryincrease(intmonth){doublesalary=3000;inti;for(i=2;i<=month;i++)salary=salary*1.1;returnsalary;}doublesum_salary(intmonth){ doublesum=0; for(i=1;i<=12;i++)sum=sum+salaryincrease(i);某集团对于驾驶员的工资是根据是否出现交通事故而定,如果不出事故,驾驶员下一月的工资会增加上月工资的10%,一个驾驶员1月份的工资为3000元,这一年都开车都没有出事故,则本年一共领取了多少工资?(备注一个函数求和,一个函数求每个月的工资)returnsum;}voidmain(){ intmonth=12; printf("本年一共领取了%.2f工资",sum_salary(12));}项目六任务四C语言程序设计

(2)行进中的分叉路口(1)树生长程中的分叉典型案例2有5名驾驶员坐在一起,问第5个人的年龄,他说比第4个人大2岁,问第4个人的年龄,他说比第3个人大2岁,问第3个人的年龄,他说比第2个人大2岁,问第2个人的年龄,他说比第1个人大3岁,第一个人的年龄是25岁,问第5个人多少岁。if(n==1)age2=25;elseage2=age1(n-1)+1;项目六任务四C语言程序设计

(2)行进中的分叉路口(1)树生长程中的分叉典型案例2有5名驾驶员坐在一起,问第5个人的年龄,他说比第4个人大3岁,问第4个人的年龄,他说比第3个人大3岁,问第3个人的年龄,他说比第2个人大3岁,问第2个人的年龄,他说比第1个人大3岁,第一个人的年龄是25岁,问第5个人多少岁。#include"stdio.h"intage(intn){ if(n==1) return25; else returnage(n-1)+2;}main(){ intn=5; printf("第5个人是%d岁",age(5));}项目六任务四C语言程序设计

(2)行进中的分叉路口(1)树生长程中的分叉典型案例3求10!用递归方法实现。1(n==1)F(n)=f(n-1)*n(n>2)算法分析:10!=9!*109!=8!*9。。。2!=1!*2过程:定义变量输入变量值使用switch进行选择判断输出项目六任务四C语言程序设计

(2)行进中的分叉路口(1)树生长程中的分叉典型案例3求10!用递归方法实现。#include"stdio.h"longfact(intn){ if(n==1) return1; else returnn*fact(n-1);}main(){ intn=10; printf("10!=%ld",fact(10));}任务分析与实践C语言程序设计

(2)行进中的分叉路口(1)树生长程中的分叉程序代码#include"stdio.h"floatsalaryincrease(intn){floatsalary; if(n==1) salary=5000; else salary=salaryincrease(n-1)*1.1; returnsalary;}main(){ intn=12; printf("第12年的工资是%.2f",salaryincrease(12));}项目六任务四C语言程序设计

(2)行进中的分叉路口(1)树生长程中的分叉巩固练习1.汉诺(Hanoi)塔问题:古代有一个梵塔,塔内有三个座A、B、C,A座上有30个盘子,盘子大小不等,大的在下,小的在上(如图)。有一个和尚想把这30个盘子从A座移到B座,但每次只能允许移动一个盘子,并且在移动过程中,3个座上

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论