很簡單的,比如你已經(jīng)有一個表達(dá)式char exp[];

創(chuàng)新互聯(lián)公司是一家專業(yè)提供定南企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站制作、成都做網(wǎng)站、html5、小程序制作等業(yè)務(wù)。10年已為定南眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。
那么 char * s = strstr(exp, "sin");
if(s) {
執(zhí)行sin(alpha)
}
就可以了
strstr是一個字符串函數(shù),用于查找字符串內(nèi)與關(guān)鍵字匹配的那個位置
比如char exp[] = "cos(a) + sin(b) - tan(c)";
那么char * s = strstr(exp, "sin");
printf(s)的結(jié)果是:
sin(b) - tan(c)
#include
#include
int main()
{
double n; //sin cos是函數(shù),不能定義成變量
scanf("%lf",n);
n=sin(n); //求n的sin()值,并返回給n
printf("%lf\n",n);//輸出n
return 0;
}
調(diào)用math.h中的三角函數(shù),需要將角度值變換為弧度值,代碼如下:
#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;
}
#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("* ⊙結(jié)束運算 * \n");
printf("************************************ \n");
printf("************************************ \n");
}
void main()
{
int c,d; /*用于做四則運算的兩個數(shù)值的說明*/
double a,b; /*用來做累加函數(shù)的兩個參數(shù)值的說明*/
int intresult;
double result; /*用于保存表單運算中函數(shù)的返回值*/
int choice;
displaymenu();/*保存用戶選擇項目菜單項*/
while(1)
{
printf("請選擇你所進(jìn)行運算項目的符號:");
scanf("%d",choice);
switch(choice)
{
case 1: /*加法計算*/
printf("請輸入兩個數(shù)字:");
scanf("%lf%lf",a,b);
result=sum(a,b);
printf("%lf+%lf的計算結(jié)果是:%lf\n",a,b,result);
break;
case 2: /*減法計算*/
printf("請輸入兩個數(shù)字:");
scanf("%lf%lf",a,b);
result=sub(a,b);
printf("%lf-%lf的計算結(jié)果是:%lf\n",a,b,result);
break;
case 3: /*乘法計算*/
printf("請輸入兩個數(shù)字:");
scanf("%lf%lf",a,b);
result=mul(a,b);
printf("%lf*%lf的計算結(jié)果是:%lf\n",a,b,result);
break;
case 4: /*除法計算*/
{
scanf("%lf%lf",a,b);
if(b-0.0EPS) printf("數(shù)字錯誤\n");
else
{
printf("請輸入兩個數(shù)字:");
result=divv(a,b);
printf("%lf/%lf的計算結(jié)果是:%lf\n",a,b,result);
}
break;
}
case 5: /*取余計算*/
printf("請輸入兩個數(shù)字:");
scanf("%d%d",c,d);
result=rem(c,d);
printf("%d % %d的計算結(jié)果是:%d\n",c,d,result);
break;
case 6: /*累加計算*/
printf("請輸入兩個整數(shù)");
scanf("%d%d",c,d);
intresult=addnumber(c,d);
printf("%d-%d的累加計算結(jié)果是:%d\n",c,d,intresult);
break;
case 7: //階乘計算
{
printf("請輸入一個大于0小于10的整數(shù)字");
scanf("%d",c);
if(c0||c10)
{
printf("請輸入一個大于0小于10的整數(shù)字,數(shù)據(jù)錯誤。\n");
break;
}
intresult=factor(c);
printf("%d的階乘計算結(jié)果是:%d\n",c,intresult);
break;
}
case 0:
printf("謝謝使用。歡迎下次再用。\n");
return ;
default:
printf("選擇錯誤,程序結(jié)束\n");
break;
}
}
}
三角函數(shù)直接用庫函數(shù)
#include "math.h"
#include "stdio.h"
void main()
{
char a = ' ';
double i;
printf("請輸入要計算的函數(shù)類型!例如: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;
}
}
switch缺少default語句;
三角函數(shù)和四則運算操作是一樣的;
可以不用get函數(shù),如果用get函數(shù),那就定義get(double,double)
cin a operation b;
switch (operation)
{
case'sin':
return ?= ?sin(a)+sin(b);
break;
case'cos':
return ?= cos(a)+cos(b);case'*':
result = a*b;
break;
case'tan':
result = tan(a)+tan(b);
break;
default:。。。。。。。
首先輸入要計算什么
比如
sin
cos
...
然后輸入要計算的值
接著調(diào)用對應(yīng)的數(shù)學(xué)函數(shù)就可以了
sin
con
tan
cot這些都是有對應(yīng)數(shù)學(xué)函數(shù)的
最后輸出結(jié)果。
需要注意的是
C的數(shù)學(xué)三角函數(shù)都是弧度做參數(shù)
而不是角度。
分享題目:c語言定義三角函數(shù)計算器 編程三角函數(shù)計算
當(dāng)前鏈接:http://chinadenli.net/article48/hepihp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、全網(wǎng)營銷推廣、自適應(yīng)網(wǎng)站、網(wǎng)站改版、做網(wǎng)站、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)