C语言:用函数的形式写出36块砖,36人搬。男搬4,女搬3,两个小孩抬一块

Python023

C语言:用函数的形式写出36块砖,36人搬。男搬4,女搬3,两个小孩抬一块,第1张

从数学角度看 设男,女,儿童为x,y,z。

列不等式组:

x+y+z = 36;

4x+3y+1/2z = 36

求x,y,z的值就好了。

数学的解法是讲究推理。程序呢不讲究推理,你只要模拟试数的过程就好了。

那么我应该按照什么原则试数呢?

首先确定x,y,z的范围

0<=x <= 36/4=9

0<=y<=36/3=12

0<=z<=36/0.5=18且z为偶数,因为1个小孩办不了一块砖。

然后看看x,y,z是否符合这个不等式组。

程序如下:

include <stdio.h>

int main(void)

{

    for(int x = 0 x <= 9 ++x)

    {

        for(int y = 0 y <= 12 ++y)

        {

            for(int z = 0 z <= 18 z += 2)

            {

                if(x+y+z == 36 && 4x+3y+z/2 == 36)

                    printf("男%d,女%d,小孩%d", x, y , z)

            }

         }

     }

    return 0

}

此程序不是最高效的,但是你看的懂。

#include <stdio.h>

void main()

{

int a=0,b=0,c=0// a->男, b->女, c->小孩,变量初始化为0

while(a<=36)

{

b=0

while(b<=36)

{

c=36-a-b

if(c>=0)

{

if((36==a*4+b*3+c/2)&&(0==c%2)) //小孩个数需要为偶数才成立

printf("男人:%d 女人:%d 小孩:%d\n",a,b,c)

}

b++

}

a++

}

}

output:

男人:3 女人:3 小孩:30

请按任意键继续. . .

33.数组名作为函数调用的实参,传递给形参的是(数组的首地址)

34.以下程序的输出结果是(10)

35.变量的指针,其含义是指该变量的 地址

65.【程序】

66.【程序】

67.【程序】函数 fun 的功能是将数组 b 逆置。

68.【程序】