重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
调用math.h中的三角函数,需要将角度值变换为弧度值,代码如下:
成都创新互联公司主营叶县网站建设的网络公司,主营网站建设方案,app软件定制开发,叶县h5微信小程序开发搭建,叶县网站营销推广欢迎叶县等地区企业咨询
#includestdio.h
#includemath.h
#define PI 3.14159265359
int main()
{
float st,a;
scanf("%f",st);
a = st * PI/180;
printf("sin(st)=%f\n", sin(a));
printf("cos(st)=%f\n", cos(a));
return 0;
}
C语言的三角函数库采用的单位都是弧度,如果要使用角度,就必须转换,从角度转换成弧度,或者是重写一个三角函数库。
方法一,在调用三角函数之前先把角度换算成弧度,调用反三角函数之后把弧度换算成角度就可以了。可以用 pi = 4.0 * atan(1) 算出pi,用 a = d /180.0*pi 转换角度到弧度。
例如: sin(45 /180.0*pi); 就是计算的sin45。
方法二,直接覆写三角函数。
例如sin函数:
double dsin(double d){
return sin(45 /180.0*pi); //原理和方法一样,调用的时候直接使用dsin(45)即可
}
#includestdio.h
#includewindows.h
#includemath.h
double EPS=10E-6;
double sum(double a,double b)
{
return a+b;
}
double sub(double a,double b)
{
return a-b;
}
double mul(double a,double b)
{
return a*b;
}
double divv(double a,double b)
{
return a/b;
}
int rem(int a , int b)
{
return a%b;
}
int addnumber(int c,int d)
{
int sum=0;
for(int i=c;i=d;i++)
{
sum+=i;
}
return sum;
}
int factor(int n)
{
int f=1;
for(int i=1;i=n;i++)
{
f*=i;
}
return f;
}
void displaymenu()
{
printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \n");
printf("*############高级计算器############* \n");
printf("************************************ \n");
printf("* ①加法运算 * \n");
printf("* ②减法运算 * \n");
printf("* ③乘法运算 * \n");
printf("* ④除法运算 * \n");
printf("* ⑤取余运算 * \n");
printf("* ⑥累加运算 * \n");
printf("* ⑦阶乘运算 * \n");
printf("* ⊙结束运算 * \n");
printf("************************************ \n");
printf("************************************ \n");
}
void main()
{
int c,d; /*用于做四则运算的两个数值的说明*/
double a,b; /*用来做累加函数的两个参数值的说明*/
int intresult;
double result; /*用于保存表单运算中函数的返回值*/
int choice;
displaymenu();/*保存用户选择项目菜单项*/
while(1)
{
printf("请选择你所进行运算项目的符号:");
scanf("%d",choice);
switch(choice)
{
case 1: /*加法计算*/
printf("请输入两个数字:");
scanf("%lf%lf",a,b);
result=sum(a,b);
printf("%lf+%lf的计算结果是:%lf\n",a,b,result);
break;
case 2: /*减法计算*/
printf("请输入两个数字:");
scanf("%lf%lf",a,b);
result=sub(a,b);
printf("%lf-%lf的计算结果是:%lf\n",a,b,result);
break;
case 3: /*乘法计算*/
printf("请输入两个数字:");
scanf("%lf%lf",a,b);
result=mul(a,b);
printf("%lf*%lf的计算结果是:%lf\n",a,b,result);
break;
case 4: /*除法计算*/
{
scanf("%lf%lf",a,b);
if(b-0.0EPS) printf("数字错误\n");
else
{
printf("请输入两个数字:");
result=divv(a,b);
printf("%lf/%lf的计算结果是:%lf\n",a,b,result);
}
break;
}
case 5: /*取余计算*/
printf("请输入两个数字:");
scanf("%d%d",c,d);
result=rem(c,d);
printf("%d % %d的计算结果是:%d\n",c,d,result);
break;
case 6: /*累加计算*/
printf("请输入两个整数");
scanf("%d%d",c,d);
intresult=addnumber(c,d);
printf("%d-%d的累加计算结果是:%d\n",c,d,intresult);
break;
case 7: //阶乘计算
{
printf("请输入一个大于0小于10的整数字");
scanf("%d",c);
if(c0||c10)
{
printf("请输入一个大于0小于10的整数字,数据错误。\n");
break;
}
intresult=factor(c);
printf("%d的阶乘计算结果是:%d\n",c,intresult);
break;
}
case 0:
printf("谢谢使用。欢迎下次再用。\n");
return ;
default:
printf("选择错误,程序结束\n");
break;
}
}
}
三角函数直接用库函数
#include "math.h"
#include "stdio.h"
void main()
{
char a = ' ';
double i;
printf("请输入要计算的函数类型!例如:s(arcsin),c(arccosine),t(arctangent)\n");
scanf("%c",a);
printf("请输入要计算的值!\n");
scanf("%lf",i);
switch(a)
{
case 's':printf("%lf",asin(i));break;
case 'c':printf("%lf",acos(i));break;
case 't':printf("%lf",atan(i));break;
}
}
包含头文件math.h后,所有三角函数的库函数就都可以直接引用了。比如求x的正弦就用sin(x),它返回一个double值。注意x以弧度计……
sum = fun(x,y,z); //这里,应当接收函数的返回值
printf("f(x,y,z)=%f\n",sum);