从数学角度看 设男,女,儿童为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.【程序】