一道初级C语言的程序

完全没思路,怎么解决各位!

鸡兔同笼,上有m个头,下有n只脚,编程求鸡、兔各多少只?(m,n从键盘输入)

说明:输入数据不合理时,输出"error"
思路是啥呀?最后这个说明的跳出是如何实现?

鸡和兔子都是1个头
鸡2只脚,兔子4只脚
假设鸡 x只,兔子y只
x+y=头数
2*x+4*y=脚数
双层for循环遍历就可以了
代码如下:

#include <stdio.h>

int main()
{
    int x, y;
    int m, n;
    int flag = 0;
    printf("请输入m和n:");
    scanf("%d %d", &m, &n);
    for (x = 0; x <= m; x++)
    {
        for (y = 0; y <= m; y++)
        {
            if (x + y == m && 2 * x + 4 * y == n)
            {
                flag = 1;
                printf("鸡%d只,兔子%d只\n", x, y);
            }
        }
    }
    if (flag == 0)
        printf("error");
   
    return 0;
}

这就是一个简单的方程
设鸡有x,兔有y
则 x+y=头总数
2x+4y=脚的总数。有了这个方程式就很好设计算法了

由于鸡有2 只脚,兔子有4 只脚,因此笼子里面脚的总数一定是个偶数。如果有奇数只脚,则输入不正确。即没有满足要求的情况出现,则输出2 个0。

当a是偶数时,若要动物数目最少,则应使动物尽量有4 只脚,而要动物数目最多,则应使动物尽量有2 只脚。因此本题无需用循环穷举,只需按上面的分析找到相应的计算式子即可。

如果总脚数a 是4 的倍数,则动物最少数目为a / 4(全部为兔子),最多为a / 2(全部为鸡)。

如果总脚数a 不是4 的倍数,则动物最少数目为a/4+1(除1只鸡外,其余全部为兔子),最多为a / 2(全部为鸡)。

因此,编写一个简单的选择结构实现相应的判断和计算输出就可以了。


#include <stdio.h>
int main(void)
{
    int j, t;
    for (j = 0; j <= 98; j++) {
        for (t = 0; t <= 98; t++) {
            if (j + t == 98 && j * 2 + t * 4 == 386) {
                printf("chickens=%d,rabbit=%d", j, t);
                break;
            }
        }
        
    }
    return 0;
}

#include

int main()

{undefined

int n,i,a;

scanf("%d",&n);

while (n--)

{undefined

scanf("%d",&a);

if (a%2!=0)

printf("0 0\n");

else if (a % 4!=0)

printf("%d %d\n",a/4+1,a/2);

else

printf("%d %d\n",a/4,a/2);

}

return 0;

}

点击一个采纳,十分感谢

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632