重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
double pow(double x,double n)
创新互联公司长期为上千多家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为高明企业提供专业的成都网站建设、网站建设,高明网站改版等技术服务。拥有10多年丰富建站经验和众多成功案例,为您定制开发。
是math.h里一函数,求x的n次幂
x必须0,
立方根就是1/3次幂了
但这里要用3.0或1.0/3,否则成了整除结果为1
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
C语言中sqrt函数是指的开方运算函数,得到的结果是函数变量(可以是数值,也可以是变量名)的算术平方根。
注意看一下程序的注释部分,希望能帮到你:
#includestdio.h
main()
{
int x,y;
printf("请输入数字:"); //这里加上一句友情提示
scanf("%d",x); //这里的上下两句对调,同时 x 的前面加上 地址符
y=x*x*x; //这里的上下两句对调
printf("y=%d\n",y);
}
上面的程序,求一般的数值,够了,但是数太大,就会溢出了,建议x、y变量改成 double 类型
#includestdio.h
main()
{
double x,y;
printf("请输入数字:"); //这里加上一句友情提示
scanf("%d",x); //这里的上下两句对调,同时 x 的前面加上 地址符
y=x*x*x; //这里的上下两句对调
printf("y=%d\n",y);
}
这其实就是一个解三元二次次方程组。
设三个点为(x1,y1),(x2,y2),(x3,y3)
用x1,y1,x2,y2,x3,y3这六个数把a,b,c表示出来,这样你可以得到三个式子。
把这三个式子用C语言表达出来,就可以了。
如果你想用计算机自己进行方程求解,也不是不可以,但稍许有些复杂,应该超出你所学范围了。
C语言中计算一个数的N次方可以用库函数pow来实现。
函数原型:double pow(double x, double y);
功 能:计算x^y的值
返 回 值:计算结果
举例如下:
double a = pow(3.14, 2); // 计算3.14的平方
注:使用pow函数时,需要将头文件#includemath.h包含进源文件中。
用牛顿迭代公式Xn+1=Xn-f(Xn)/f'(Xn)
其中f(X)=X^3-a
float CubeRoot(float a){
float root=1.0; /*迭代初始值,随便取一个数,但不要是0*/
while(fabs(root*root*root-a)=0.0001) /*设定迭代精确度,如果精度比较高的话可以把root定义为double,防止死循环。或者可以在循环内部根据迭代次数调整精度*/
root=root-(root*root*root-a)/(3*root*root);
return root;
}
int main(void){
float a;
float CubeRoot(float a);
printf("Please input a: "); scanf("%f",a);
printf("\nThe cube root of %f is %f",a,CubeRoot(a));
return 0;
}
#include stdio.h
#include stdlib.h
#include malloc.h
#include math.h
#define N 3 /* 3个未知数,3个方程组 */
float **p = NULL;
float b[N * (N + 1)] ={2,1,1,28,
5,2,2,66,
10,5,4,137};
/* 3元方程组的数据, 自己可以随意修改数值, 还可以修改N 和浮点数组实现任意多阶方程组求解*/
float ** build_array(int r, int c)
{
int i = 0;
float *p1 = malloc(r * c * sizeof(float));
float **p2 = malloc( r * sizeof(float *));
for(i = 0; i r; i++)
{
p2[i] = p1[i * c];
}
return p2;
}
void free_room(float **p)
{
free(*p);
free(p);
}
void init(int row, int cul)
{
int i, j;
int cnt = 0;
for(i = 0; i row; i++)
{
for(j = 0; j cul; j++)
{
p[i][j] = b[cnt++];
}
}
}
void gs(float **p, int row, int cul) /* 高斯消元法*/
{
int i = 0;
int j = 0;
float tmp1,tmp2;
for(i = 0; i row; i++)
{
tmp1 = p[i][i];
for(j = 0; j cul; j++)
{
p[i][j] /= tmp1;
}
int k;
for(k = i + 1; k row; k++)
{
tmp2 = p[k][i];
for(j = 0; j cul; j++)
{
p[k][j] -= tmp2 * p[i][j];
}
}
}
}
void qiujie(int hang)
{
float y[hang];
int m = 0;
float tmp3;
int z = 0;
for(m = hang-1; m = 0; m--)
{
tmp3 = 0;
for(z = hang-1; z m; z--)
{
tmp3 += p[m][z] * y[z];
}
printf("y[%d] = %f\n", m, y[m] = (p[m][hang] - tmp3));
}
}
int main(void)
{
int m = 0;
int x = 0;
p = build_array(N, N+1);
init(N, N+1);
gs(p, N, N+1);
for(m = 0; m N; m++)
{
for(x = 0; x N + 1; x++)
{
printf(" %2f ", p[m][x]);
}
printf("\n");
}
qiujie(N);
free_room(p);
}