想建立一个函数,但是出现了Error,小白求指导决

C语言 码拜 3年前 (2017-04-21) 311次浏览
程序如下,小白想编一个输出方程2*x^3-4*x^2+3x-6=0在区间(-10,10)之间的根的程序,在下方定义了一个函数,编译时,dev提示“[Error] a function-definition is not allowed here before “{” token”,小白难以看出程序问题,请教高手解答,谢谢!
#include<stdio.h>
#include<stdlib.h>
float x,y,z,a,b,n,k,i,j,a1,b1;
float fc(float y);
int main()
{
printf(“方程2*x^3-4*x^2+3x-6=0在区间(-10,10)之间的根为:\n”);
a=-10,b=10,a1=fc(a),b1=fc(b);
while(fc(x)!=0)
{
n=(a+b)/2;
z=fc(n);
x=n;
if(z==0) printf(“该方程在区间(-10,10)之间的根为:%d”,y);break;
if(z*a1<0) b=n,b1=z;
else z=n,a1=z;
}
float fc(float y)
{
y=2*y*y*y-4*y*y+3*y-6;
return y;
}
return 0;
}
未命名1.cpp In function “int main()”:
未命名1.cpp [Error] a function-definition is not allowed here before “{” token
解决方案

20

问题挺多的,本人一个一个来哈。
1、下面那个函数的定义,float fc(float y){}应该写在main函数之外。写在main函数下面即可
2、while条件语句中,调用fc时未给变量x值。(变量x只声明了,但是没有具体的值)
3、print函数中,%d应该改为%f(原因是是浮点变量)。那个y根据你的意思应该是x吧。看看是不是写错了。
4、if语句之后应该带{}括号,原因是你不光只有一句printf,还有一句break。两句以上就得用{}括起来。同理,下面的if也有同样的问题。
最后。你这个代码写的好乱。本人觉得在这个基础上根本没法改。

40

fc函数要放在主函数外面,而不是里面

#include<stdio.h>
#include<stdlib.h>
float x,y,z,a,b,n,k,i,j,a1,b1;
float fc(float y);
int main()
{
	printf("方程2*x^3-4*x^2+3x-6=0在区间(-10,10)之间的根为:\n");
	a=-10,b=10,a1=fc(a),b1=fc(b);
	while(fc(x)!=0)
	{
		n=(a+b)/2;
		z=fc(n);
		x=n;
		if(z==0) printf("该方程在区间(-10,10)之间的根为:%d",y);break;
		if(z*a1<0) b=n,b1=z;
		else z=n,a1=z;
	}
	return 0;
}
float fc(float y)
{
	y=2*y*y*y-4*y*y+3*y-6;
	return y;
}

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明想建立一个函数,但是出现了Error,小白求指导决
喜欢 (0)
[1034331897@qq.com]
分享 (0)