栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

6-6 指针做参数: 求解鸡兔同笼。 (10 分)指针

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

6-6 指针做参数: 求解鸡兔同笼。 (10 分)指针

鸡兔同笼是中国古代的数学名题之一。 大约在1500年前,《孙子算经》中就记载了这个有趣的问题。书中是这样叙述的: 今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?这四句话的意思是: 有若干只鸡兔同在一个笼子里,从上面数,有35个头,从下面数,有94只脚。问笼中各有多少只鸡和兔? 本题要求编写函数,利用指针做参数求解鸡兔同笼问题。头和脚的数目从键盘输入。

函数接口定义:
void  fun ( int h,int f,int *p,int *q );

其中h和f由主函数传入,代表头和脚的数目, (假定输入数据都合理)。 函数fun可求出鸡和兔的数目,并在主函数输出。

裁判测试程序样例:
在这里给出函数被调用进行测试的例子。例如:
#include 

void  fun ( int h,int f,int *p,int *q );

int main()
{
  int h,f,x,y ;
  scanf("%d%d", &h, &f);   
    fun (h ,f, &x,&y );   //x、y代表鸡和兔的数目
  printf("cocks=%d,rabbits=%d", x,y);
  return 0;
}

输入样例:
35 94

结尾无空行

输出样例:
cocks=23,rabbits=12

结尾无空行


鸡兔同笼问题,我们可以用小学的思想解决这个问题:

       假如鸡与兔子都抬起两只脚,还剩下94-35×2=24只脚 , 这时鸡是屁股坐在地上,地上只有兔子的脚,而且每只兔子有两只脚在地上,所以有24÷2=12只兔子,就有35-12=23只鸡。

void  fun ( int h,int f,int *p,int *q )//p鸡,q兔
{
    int n, m;//n鸡,m兔
    m = (f-2*h)/2;     //鸡和兔全部抬起两只脚,地上只剩下兔子的脚
    n = h-m;       //总头数—兔子头数=鸡的头数
    *p = n;     //赋值给p,q
    *q = m;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/656002.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号