谁能帮我修改程序(根据这个程序框图) 理想的结果如下
#include<stdio.h> #include<math.h> void main() { double a,b; double e,x1,x2,y1,y2,x4,y4; printf("请输入a b e:\n"); scanf("%d%d%2f",&a,&b,&e); x1=b-0.618*(b-a); y1=x1*x1-6*x1+9; x2=a+0.618*(b-a); y2=x2*x2-6*x2+9; do { if(y1>=y2) { a=x1; x1=x2; y1=y2; x2=a+0.618*(b-a); y2=x2*x2-6*x2+9; else b=x2; x2=x1; y2=y1; x1=b-0.618*(b-a); y1=x1*x1-6*x1+9; } }while(fabs(b-a)>e); x4=(a+b)/2; y4=x4*x4-6*x4+9; printf("黄金分割计算结果\n"); printf("a b x1 x2 y1 y2\n"); printf("a=%f\ b=%f \x1=%f \x2=%f \y1=%1f \y2=%1f\n",a,b,x1,x2,y1,y2); printf("x4=%f\n",x4); printf("y4=%f\n",y4); } 程序图
不知道你的程序是要实现什么功能,就把语法错误改了一下,建议写代码的时候还是加上必要的注释和缩进,不然很难查错和调试。 #include #include void main() { double a,b; double e,x1,x2,y1,y2,x4,y4; printf("请输入a b e:\n"); scanf("%d%d%2f",&a,&b,&e); /*输入a b e的时候,请用空格隔开*/ x1=b-0。
618*(b-a); y1=x1*x1-6*x1+9; x2=a+0。618*(b-a); y2=x2*x2-6*x2+9; do { if(y1>=y2) { a=x1; x1=x2; y1=y2; x2=a+0。
618*(b-a); y2=x2*x2-6*x2+9; } else{ b=x2; x2=x1; y2=y1; x1=b-0。
618*(b-a); y1=x1*x1-6*x1+9; } }while(fabs(b-a)>e); x4=(a+b)/2; y4=x4*x4-6*x4+9; printf("黄金分割计算结果\n"); /*printf("a b x1 x2 y1 y2\n"); */ printf("a=%f\ b=%f \x1=%f \x2=%f \y1=%1f \y2=%1f\n",a,b,x1,x2,y1,y2); printf("x4=%f\n",x4); printf("y4=%f\n",y4); } 。
新手任务,路过
答:t=a;a=a+b;b=t;这几句是因为这个程序的算法的要求。这个并不是简单的交换。你上面的注释都已经写清楚了,a值为分子,b值为分母, a值为上一次的a值和上...详情>>
问:挺简单的一C函数,不过我是初学者,暂时还不会写,请好心人多多帮忙!
答:int mystrlen(char *str) { int n = 0; while (*str) { n++; str++;} return n; } voi...详情>>