c语言鸡兔同笼,鸡兔同笼应用题60道

首页 > 大全 > 作者:YD1662022-12-20 13:58:57

在C 中“=”作为赋值运算符,我们之前已经用过很多次了。

今天我们主要讲一下《信息学奥赛一本通》赋值语句这一节中的两道例题。

例一. 输入两个正整数a和b,试交换a和b的值。

这道题有一个陷阱,如果我们之前没接触过这种题,很容易被坑。写成这样:

c语言鸡兔同笼,鸡兔同笼应用题60道(1)

但是我们发现,程序运行之后,完全不是我们要的结果:

c语言鸡兔同笼,鸡兔同笼应用题60道(2)

到底是哪错了呢?

问题就出在这:

a=b;

b=a;

假如说我们输入a的值是1,b的值是2.

在a=b这步时,a的值就是2了

然后让b=a,b还是2 。

这就不是互换了,而是都变成b的值了。

我们要达到互换的 目的,我们需要一个用来中转的变量c。

这样,我们先把a的值赋给c,然后把b的值赋给a,再把c的值赋给b,这样就可以了。

c语言鸡兔同笼,鸡兔同笼应用题60道(3)

看看运行结果,这回换过来了:

c语言鸡兔同笼,鸡兔同笼应用题60道(4)

例三. 鸡兔同笼。

笼子里有若干只鸡和兔,头共30个,脚共90只。问笼中鸡和兔各有多少只?

在这道题里,我们可以定义4个变量,c r f h

c代表鸡,r代表兔,f代表脚,h代表头

根据题意,我们可以得到:

c r=h

2c 4r=f

如果我们解数学题,可以将这两个等式列一个方程组,然后计算出来就可以了。

不过在C 中这样显然是不行的,因为我们不能把一个值赋给一个表达式。

所以需要我们稍微计算一下。经过计算我们得出:

c=h-r

2(h-r) 4r=f

r=(f-2h)/2

现在我们可以编写代码了:

c语言鸡兔同笼,鸡兔同笼应用题60道(5)

c语言鸡兔同笼,鸡兔同笼应用题60道(6)

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.