题目:鸡兔同笼问题
要求:使用自定义函数void calc(int h, int f,int *c,int *r) 求解鸡兔同笼问题。
h 表示总的头数,f 表示总的脚数。
例子:
输入:
5 16
输出:
2 3
分析:
在该代码中,我们定义了一个自定义函数 calc
,其用途是根据给定的头的总数量和脚的总数量,计算鸡和兔的数量,并通过通过两个指针参数 c
和 r
来传递计算结果。
在函数中,我们首先计算出兔子的数量,即 (f - 2 * h) / 2
。
【这里 (f - 2 * h)
的含义是用脚的总数量减去鸡的总数量的两倍,得到的结果就是兔子脚的数量。将其除以2,则得到兔子的数量。】
接着,我们可以通过鸡和兔的数量之和等于总数量 h
,得到鸡的数量,即 h - *r
。
这里,我们可以利用前面已经计算出的兔子数量,从而得到鸡的数量。
在主函数中,我们通过 scanf
函数获取用户输入的头的总数量和脚的总数量,并调用 calc
函数计算鸡和兔的数量。最后,我们使用 printf
函数输出计算结果。
需要注意的是,该代码假定输入的头的总数量和脚的总数量是有效的,即能够通过给定的头的数量和脚的数量计算出鸡和兔的数量。在实际应用中,我们需要对输入进行验证,以确保输入的值是有效的。
上代码!
#include <stdio.h>
void calc(int h, int f,int *c,int *r)
{
*r = (f - 2 * h) / 2;
*c = h - *r;
}
int main()
{
int h, f, c, r;
scanf("%d%d", &h, &f);
calc(h, f, &c, &r);
printf("%d %d\n", c, r);
return 0;
}
运行结果如下: