A. c語言設計一程序標准函數cos計算結果
已經過編譯和運行測試,邊界條件就不管了
#include <stdio.h>
#include "math.h"
double mycos(double val)
{
int i,ii;
double sum = 1.0;
double tmpa,tmpb;
for(i = 1;;i++)
{
for(tmpa=tmpb=1,ii=i*2; ii > 0; ii-- )
{
tmpa *= val; /*計算X的冪*/
tmpb *= ii; /*計算ii! */
}
tmpa /= tmpb;
if(tmpa < 0.000001)break; /* 跳出判定 */
if(i % 2)tmpa *= -1; /* 符號確定 */
sum += tmpa;
}
return sum;
}
void main()
{
double a;
printf("please input:\n");
scanf("%lf",&a);
printf("mycos(%lf) = %lf\n",a,mycos(a));
printf(" cos(%lf) = %lf\n",a, cos(a));
return;
}
B. c語言求cos的問題
doublefact(inta){
inti;
doublesum;//返回值類型是double,你這里應該定義成相同的類型才對
sum=1;
for(i=1;i<=a;i++)sum=sum*i;
returnsum;
}
doublefuncos(doublee,doublex){
doubledcos,xiang;//cos是math中的一個函數名,不能與之重復
inta,fuhao;
dcos=0,fuhao=1,a=0;
do{
xiang=pow(x,a)/fact(a);
dcos=xiang*fuhao+dcos;
a=a+2;
fuhao=-fuhao;
}while(xiang>=e);//要這樣寫才能精確
returndcos;
}
C. C語言中 COS()的用法
cos()是庫函數,在頭文件math.h中,原型是doublecos(doublex);,其中x要用弧度表示。如求30°的餘弦值可用下列代碼實現:
//#include"stdafx.h"//Ifthevc++6.0,withthisline.
#include"stdio.h"
#include"math.h"
intmain(void){
printf("cos30°=%.10f ",cos(30*3.1415926535897932/180));
return0;
}
D. c語言,cos近似值計算
你應該把di=1.0放在do-while循環裡面開始處。修改後結果正確,程序如下:
#include "stdio.h"
#include "math.h"
double funcos(double e, double x);
int main(void)
{
int repeat, ri;
double e, sum, x;
scanf("%d", &repeat);
for(ri = 1; ri <= repeat; ri++){
scanf("%le%le", &e, &x);
sum=funcos(e,x);
printf("sum = %f\n", sum);
}
}
double funcos(double e,double x)
{
int i,d,flag;
double item,b,di;
d=0;
flag=1;
b=0.0;
do{
di=1.0;
for(i=1;i<=d;i++){
di=di*i;
}
item=flag*pow(x,d)/di;
b=b+item;
flag=-flag;
d+=2;
} while(fabs(item)>=e);
return b;
}
E. 用C語言求cosX的值
x -- 用弧度值輸入
精度 -- 1E-07
泰勒公式:
cos(x) = 1 - x^2/2! + x^4/4! - x^6/6! ...
程序:
#include<stdio.h>
#include<math.h>
void main(){
double x,term,sum,x2;
int i;
printf("input x in HuDu\n");
scanf("%lf",&x);
x2 = x * x;
sum = 1.0;
term = 1.0;
for (i=2;i<20;i=i+2){
term = term*x2/(double) (i * (i-1)) * (-1.0);
if (fabs(term) < 1.0E-07) break;
sum = sum + term;
}
printf("cos(x)=%lf\n",sum);
}
--------------
算例:
1.570796
cos(x)=0.000000
0.78539
cos(x)=0.707113
3.14159
cos(x)=-1.000000
F. C語言程序設計:用泰勒級數計算cos
#include "stdio.h"
#include "math.h"
#define PI 3.14156
float cosx(float x);
float fun_cos(float x, int m);
int main()
{
float x = PI/2;
printf("cos(%f)=%f\n",x,cos(x));//使用系統函數cos計算
printf("cosx(%f)=%f\n",x,cosx(x));//使用泰勒公式計算
return 0;
}
float fun_cos(float x, int m)
{
float ret_val;
int i;
if (m%2 == 0)
{
ret_val = 1.0;
}else
{
ret_val = -1.0;
}
for (i=1;i<=2*m;i++)
{
ret_val = ret_val * x/i;
}
return ret_val;
}
float cosx(float x)
{
float ret_val = 1.0;
float temp_ret;
int m = 1;
float Pi = 3.1415926;
if (x > 2*Pi || x < -2*Pi)
{
x = x-((int)(x/(2*Pi)))*(2*Pi);
}
do
{
temp_ret = fun_cos(x,m++);
ret_val += temp_ret;
} while (temp_ret>0.00005 || temp_ret<-0.00005);
return ret_val;
}