朴原辰简历:#include<stdio.h>

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/28 14:26:56
#include<stdio.h>
#include<math.h>
void main()
{
float a,a1,b,b1,h,x0,f0,f1,f2,x[50];
int i,j=0,n;
scanf("%f%f%f",&a,&b,&n);
h=(b-a)/n;
for(i=1;i<=n;i++);
{
a1=a+(i-1)*h;
b1=a+i*h;
/*if((-3.1415926)/4-0.000001<=a1<=-3.1415986/4) continue;
if(3.1415926/4-0.000001<=a1<=3.1415986/4) continue;
if((-3.1415926)/4-0.000001<=b1<=-3.1415986/4) continue;
if(3.1415926/4-0.000001<=b1<=3.1415986/4) continue;*/
f1=0.1*a1*a1-tan(2*a1);
f2=0.1*b1*b1-tan(2*b1);
if(f1==0)
{
x[i]=a1;
j++;
}
if(f2==0)
{
x[i]=b1;
j++;
}
if(f1*f2<0)
{
for(;;)
{
x0=(a1+b1)/2;
/*if(3.1415926/4-0.000001<=x0<=3.1415986)
continue;*/
f0=0.1*x0*x0-tan(2*x0);
if(f1*f0<0)
b1=x0;
else a1=x0;
if(b1-a1<1.e-6)
{
x[i]=(a1+b1);
j++;
break;
}
}
}
for(i=0;i<j;i++)
printf("%f",x[i]);
}
}
应有注释部分但加上就出错,还不能输出结果。
有没有高手呀

c

你把变量n定义为整节型,在输入的时候却用作单精度类型,所以导致输出数据错误,当然就不能看到结果了。
你只要把变量n定义为单精度类型(float),或者把“scanf("%f%f%f",&a,&b,&n); ”这句改为“scanf("%f%f%d",&a,&b,&n); ”就行了。