编写函数,利用指针做参数求解鸡兔同笼问题。 函数接口定义: int cocks_rabbits ( int heads,int foots,int *cocks,int *rab );
时间: 2023-12-11 18:02:58 浏览: 99
好的,以下是函数的实现代码:
```c
int cocks_rabbits(int heads, int foots, int *cocks, int *rab) {
int i, j;
for (i = 0; i <= heads; i++) { // 枚举鸡的数量
j = heads - i; // 计算兔的数量
if (i * 2 + j * 4 == foots) { // 判断是否满足条件
*cocks = i;
*rab = j;
return 1; // 返回 1 表示求解成功
}
}
return 0; // 返回 0 表示求解失败
}
```
函数使用了指针参数来返回鸡的数量和兔的数量。在函数中,首先枚举鸡的数量,然后根据鸡和兔的数量计算出兔的数量,判断是否满足条件,如果满足则将鸡的数量和兔的数量存入指针所指向的变量中,返回 1 表示求解成功;如果不满足则继续枚举,直到枚举完所有可能的情况后返回 0 表示求解失败。
例如,假设鸡兔同笼共有头 20 只,脚 56 只,可以这样调用函数:
```c
int cocks, rab;
if (cocks_rabbits(20, 56, &cocks, &rab)) {
printf("鸡的数量:%d,兔的数量:%d\n", cocks, rab);
} else {
printf("无法求解\n");
}
```
输出结果为:
```
鸡的数量:12,兔的数量:8
```
希望能够帮到你!
阅读全文