zjxnq 2023-04-12 12:48 采纳率: 100%
浏览 18
已结题

在C语言课程上遇到的问题,教说程序没问题,但是运行没结结果

上课时遇到的一个问题
是一个百元百鸡的问题:一个老人欲用100元买100只鸡,其中公鸡卖2元,母鸡卖3元,小鸡卖0.5元,求所有的解。
是同学问我的,但是我也搞不懂为什么结果出不来。

#include<stdio.h>
int main()
{
    int x, y, z;    //设公鸡为x,母鸡为y,小鸡为z
    for (x = 1; x < 51; x++)    //因为公鸡两元一只,不可能大于51
        for (z = 2; z < 49; z = z + 2)    //小鸡只能为偶数,所以就设初始量为2,并且每次加2
        {
            y = 100 - x - z;    //用(100 - x - z)代替y
            if (2 * x + 3 * y + 0.5 * z == 100)        //判断是否满足条件:消耗一共一百元
                printf("老大爷要买公鸡%d\n母鸡%d\n小鸡%d\n\n", x, y, z);
        }
}

img

而如果把第二个for循环的变量“z”改成“y”,程序就能正常运行。

img

想了好久,着实是想不通为什么,麻烦各位指点一下!

  • 写回答

2条回答 默认 最新

  • 快乐鹦鹉 2023-04-12 13:10
    关注

    小鸡的话,为啥要z<49呢?100元可以买200只小鸡啊。z<200试试吧

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月20日
  • 已采纳回答 4月12日
  • 创建了问题 4月12日