C语言!帮忙看下这个程序为啥没有结果输出?好像是没有print项。谁帮忙补充下?用的是二次插值法.

#include "stdio.h"
#include "math.h"
#include "conio.h"
void main()
{
float *area(float a1,float p,float a[3]);
float f(float x);
float ar,fr;
float a2,a3;
float f1,f2,f3;
float a1=10,p=0.01,e=0.00001;
float pa[3];
area(a1,p,pa);
a1=pa[0];
a2=pa[1];
a3=pa[2];
f1=f(a1);
f2=f(a2);
f3=f(a3);
do
{
ar=((a3*a3-a2*a2)*f1+(a1*a1-a3*a3)*f2+(a2*a2-a1*a1)*f3);
ar=ar/2/((a3-a2)*f1+(a1-a3)*f2+(a2-a1)*f3);
fr=f(ar);
if(ar>a2)
{
if(fr>f2)
{
a3=ar;f3=fr;}
else if(fr<f2)
{
a1=a2;f1=f2;
a2=ar;f2=fr;}
else
{
a3=ar;a1=a2;a2=(a1+a3)/2;
f1=f2;f3=fr;f2=f(a2);}
}
else if(ar<a2)
{
if(fr>f2)
{
a1=ar;f1=fr;}
else if(fr<f2)
{
a3=a2;f3=f2;
a2=ar;f2=fr;}
else
{
a1=ar;a3=a2;a2=(a1+a3)/2;
f1=fr;f3=f2;f2=f(a2);}
}
if(fabs(a1-a3)<=e) break;
}while(1);
if(f2<fr)
{
ar=a2;fr=f2;}
printf("\nx*=%f\nf(x*)=%f",ar,fr);
}

float *area(float a1,float p,float a[3])
{
float f(float x);
float a2,f2,a3,f3,temp;
float acc=0.01;
float f1=f(a1);
//float p;//这里有重复定义的错,p已经是函数的参数了,

while(1)
{
a2=a1+p;f2=f(a2);
if(f2>=f1)
{
if(fabs(f2-f1)<acc)
p=p/2;
else
p=-p;
}
else break;
}
while(1)
{
a3=a2+p;f3=f(a3);
if(f2<=f3) break;
p=2*p;
a1=a2;f1=f2;
a2=a3;f2=f3;
}
if(a1>a3)
{
temp=a1;a1=a3;a3=temp;}
a[0]=a1;a[1]=a2;a[2]=a3;
return a;
}
float f(float x)
{
float y=pow(x,4)-4*pow(x,3)-6*pow(x,2)-16*x+4;
return y;
}

不好意思,我没看到你定义的几个变量有赋值的语句,也没有SCANF 从外界输入的语句。
温馨提示:内容为网友见解,仅供参考
无其他回答

c语言运行程序为什么没有输出数?
2、没有输出 不知道计算的结果那算法就没有意义了。输出不一定是要打印到屏幕上的,可以是下一个程序的输入,可以是一个文件、一段语音、一张图像,甚至是机器人的步行动作等等。

C语言编程显示没有错误没有 但黑色框没有出来 求高人指点小弟啊 不好意...
print 程序里有吗?

程序问题,提示没有printf定义,
您好,这个程序的问题可能在于,图片中print的这一行的末尾是冒号,应该修改为分号。在c语言中注意检查每一句代码的末尾都必须加的是分号;而且还必须是英文的。

c语言程序设计,为什么第二和第三个函数没有输出结果
} void print(){ printf("输出完毕!!\\n");}

求各位c语言老师帮我检查下程序,谢谢
}\/\/ 根据你的意思,这个返回值没有必要,因为你已经有了一个\/\/ 全局的k来记录 最大成绩的下标了。int maximum(struct student stud[]){ \/\/ 这个是找最大值的方法,用一遍遍历就可以了。 \/\/return id of student who has max total_score; \/* int i,j,k; for(i=0;i<...

为什么mian函数没有输出结果?
2,大多数是因为未加main.c文件于工程中或main单词拼写错误。解决:仔细检查程序代码,看是否出现拼写错误,修改main单词。如果自己的程序并没有出现上述这两种情况,可能是因为《ARM处理器裸机开发实战——机制而非策略》这本书自定的启动代码是根据ADS1.2软件编写的{自定义的启动代码里定义了Main(),...

求C语言编程大佬帮忙!这道题的逻辑哪里出错了!找了几个小时了没搞明白...
思路如下:这个问题实际上是生成0~9的全排列,然后根据每个数在格子里的位置判断每个排列是否符合要求。百度了一个全排列算法稍做修改,得到以下代码,输出的有效方案数是1580,在我这里输出大约在70ms到100ms左右。百度这个代码排版垃圾得无以复加,vs里面排得好好复制过来全乱,不再重排了。另外,生成...

c语言题目,题目运行出来答案是1,那个else后面的printf为什么没有...
因为这里的else不归第一个if管,第一个if不成立则下面的if和else不执行,所以直接执行最后一行,然后因为是x++,是代表输出 x 的值后再进行+1。所以就等于1.

c语言 能帮忙看一下哪里错了吗?红色的是错了的 求大神相助呀_百度知 ...
max.min你要求传入的是一个数组而不是数组中的一个元素。数组的定义用 int symb[size];数组的使用是 symb,数组元素的使用是 symb[n]所以printf(...,i,max(a[SIZE])) 改成 print(...,i,max(a))min(a[SIZE])类推.

C语言代码运行不出来代码 链队列算法 没结果 应用程序错误 错误见图 ...
void print(lqnode *front,int *y){ node *p;p=(*front)->next;y=p->data;(*front)->next=p->next;free(p);} main(){ int x=0;lqnode front,rear;crea_linkqueue(&front,&rear);for(int i=1;i<10;i++)pushqueue(&rear,i);while(front->next!=rear){ print(&front,&x)...

相似回答
大家正在搜