编程求不等式最值

来源:百度知道 编辑:UC知道 时间:2024/06/30 04:47:25
目标:Maxz=4x+2y
约束:x+2y<=6
x+y<=9
3x-y<=15
x-y>=0
觉得分不够的说话
float Maxz= 0;//用临时的变量保存4x+zy的值,只要比这个值大,就改变,否则不变

for(x=-1000 ,i<1000,x++)//将x,y循环,得出结果,用1000是个猜想范围
{
for (y=-1000, y<1000,y++)
{
if (x+2*y)<=6// ..其它条件再加上
{
if(4*x+2*y>maxz)//如果大于maxz,就将maxz变成大的.
{maxz=4*x+2*y;}
}
}
}
X++和Y++都是+1的,但是算出来的结果是X=36/7,Y=3/7.
这个怎么办?

include<stdio.h>
void main()
{int a,b;
printf("输入实参:/n");
scanf("%d","%d",&a ,&b);
Maxz(int a,int b);
printf("最大值为:&z");
}
int Maxz(int x,int y)
{
int z;
if(x>9)
return NULL;
x=x;
if(y>9)
return NULL;
y=y;
if(x>6)
return NULL;
x=x;
if(y>3)
return NULL;
y=y;
if(x>5)
return NULL;
x=x;
if(y<(-15))
return NULL;
y=y;
if(x<y)
return NULL;
x=x;
y=y;
z=4x+2y;
return(z);
}
如果是int型 这样写就可以了 刚才没看到补充问题 如果是非整数的话就把int改成float 懒得再改了 呵呵 版主参考一下 不懂再问我

如果是编程,那只能用循环法,反正值也不大.
x y是否Integer! 是什么意思,要是x,y都要求是integer就简单了:
float Maxz= 0;//用临时的变量保存4x+zy的值,只要比这个值大,就改变,否则不变

for(x=-1000 ,i<1000,x++)//将x,y循环,得出结果,用1000是个猜想范围
{
for (y=-1000, y<1000,y++)
{
if (x+2*y)<=6// ..其它条件再加上
{