关于c语言程序问题,求各位c语言爱好者和大神们相助,具体的请看补充问题!!万分感谢!

有这个方程x+y+z=1。规定x,y,z都是取小数点后一位的数,即x可以等于0.1,0.2,0.3到0.9。y,z和x的取值方式一样。现在求一个c语言程序,使x*0.2+y*0.5+z*0.6的值最大。(以及怎么推广到不止xyz三个数,比如有四个数的和等于1,那么程序又是怎么写哦。*表示乘号哈)求各位c语言爱好者即大神帮帮我,小弟万分感谢,难于言表!!!

最简单的方法就是用循环来写 x y z分别循环然后判断哪组符合约束条件取值最大
#include<stdio.h>
int main()
{
double x,y,z,max,sum;
max=sum=0.0;
for(x=0.1;x<=0.9;x=x+0.1)
for(y=0.1;y<=0.9;y=y+0.1)
for(z=0.1;z<=0.9;z=z+0.1)
{sum=x*0.2+y*0.5+z*0.6;
if(max<=sum)
max=sum;
}
printf("%lf\n",max);
}
至于那个四个数和等于1的那个 就是在判断是否最大的时候加一个约束条件 就是x+y+z+k是否等于一 等于就将值给max
我也是新手 只能用这种笨方法了 还有就是用数学只是 就是动态规划 这个我不太会...
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-11-30
我想你问的是x*0.2+y*0.5+z*0.6等于1,而不是最大值:
程序如下
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main(int argc, char**argv)
{
float x,y,z;
for(x=0.1f;x<1;x+=0.1f)
for(y=0.1f;y<1;y+=0.1f)
for(z=0.1f;z<1;z+=0.1f)
if((x*0.2+y*0.5+z*0.6)==1.0f)
printf("%f,%f,%f",&x,&y,&z);
return 0;
}
第2个回答  2012-12-02
#include<stdio.h>
double sum(double ,double,double);
int main()
{ double x,y,z,max=0,sum1,sum2;
for(x=0.1;x<=0.9;x=x+0.1)
for(y=0.1;y<=0.9;y=y+0.1)
for(z=0.1;z<=0.9;z=z+0.1)
{
sum1=sum(x,y,z);
if(sum1==1)
{
sum2=0.2*x+0.5*y+0.6*z;
if(max<sum2) max=sum2;
}
}
printf("%f\n",max);
}
double sum(double a ,double b,double c)
{
double i;
i=a+b+c;
return i;
}
第3个回答  2012-12-01
我想你问的是x*0.2+y*0.5+z*0.6等于1,而不是最大值

关于c语言程序设计的问题求大神帮忙!万分感谢!
让我们用VC6先来编制一个最简单的程序,其功能是向屏幕上输出一个字符串“Hello World”。程序虽小,但与编制运行大程序的整个过程是相同的,都包含如下所谓的“四步曲”:(1)编辑(把程序代码输入,交给计算机)(2)编译(成目标程序文件.obj)编译是把高级语言变成计算机可以识别的2进制语言,计算机只认...

关于c语言程序设计的问题求大神帮忙!万分感谢!
void main(){ float a,b,c;float s,temp;printf("请依次输入三角形的三边:");scanf("%f%f%f",&a,&b,&c);if(((a+b)>c)&&((a+c)>b)&&((b+c)>a)&&((a-b)<c)&&((a-c)<b)&&((b-c)

C语言程序设计,求答案。万分感谢!
第一题的:include<stdio.h> int main(){ char c;scanf("%c",&c);if('a'<=c&&c<='z')printf("%c\\n",char(c-32));else if('A'<=c&&c<='Z')printf("%c\\n",char(c+32));else printf("what you input is not a letter! ");return 0;} 第二题的:include<stdio.h> ...

求教C语言大神!!!最好讲一下理由,万分感谢
原因如下:首先,主函数只进行了一个fun操作,其他的就是定义和输出,所以字符串(或者说字符数组)的调整完全由fun决定 fun中首先定义了x和y,因为s的长度是5,所以y = (strlen(s) - 1) \/ 2=(5-1)\/2=2 因此:循环开始时,初始值是x=0,y=2,s="abcde",进入循环 第一次:0<2成立,...

简单的C语言程序编写问题!求大神解答!!!万分感谢
for循环判断是否存在数组中元素与查找数字相等,存在输出Yes退出循环。如果遍历完数组i=10表示未找到输出No include "stdafx.h"include <iostream> using namespace std;int main(){ int num[10],x,i;cout << "请输入10个整数:" << endl;for (i = 0; i < 10; i++)cin >> num[i];c...

C语言编程有一个错误找不出来了,求大神把错误给我指出来,万分感谢!
C语言编程有一个错误找不出来了,求大神把错误给我指出来,万分感谢!  我来答 分享 微信扫一扫 新浪微博 QQ空间 举报 浏览8 次 可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。 c语言编程 大神 搜索资料 本地图片 图片链接 代码 提交回答...

精通C语言的前辈们,求帮忙!!!万分感谢!
1、 C程序开发平台由C环境、C标准库和_ __三部分组成。 \/\/ 编辑、编译、连接 5、宏观上看C源文件是由_字符和数字_组成的。二、单项选择题 11、已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'+'6'-'3';后,c2中的值为( B)。A)D B)68 C)不确定的值 ...

刚刚学习C语言,各位高手帮帮写写.万分感谢。 1、写两个表达式,分别取整 ...
include<stdio.h> void main(){ int x,a,b;scanf("%d",&x);a=x%10;b=x%100\/10;printf("各位数a=%d 十位数b=%d\\n",a,b);}

谁能帮我设计一个C语言程序,求解方程组的,急啊,哪位高手帮下咯,万分感...
假定你要的是线性方程组,下面的 float *GauseSeidel(float *a,int n)是高斯赛德尔法求解线性方程组的通用子程序。N 是 迭代次数极限。main()里写了调用的例子。include <stdio.h> include <stdlib.h> include <math.h> define N 100 float *GauseSeidel(float *a,int n){ int i,j,nu=0;...

求助c语言的高手~~~
1.main(){ char a;scanf("%c",&a);if(a>='0'&&a<='9')printf("shu zi");else if(a>='a'&&a<='z')printf("xiao xie zi mu");else if(a>='A'&&a<='Z')printf("da xie zi mu");else printf("qi ta zi fu");} 2.main(){ int a;scanf("%d",a);if(a==0)...

相似回答