先上效果图:
首先,第一步判断使用角度制还是弧度制进行角度的表示,实现代码如下:
int ang_or_rad(char str[3])
{
printf("请输入选择角度制表示还是弧度制表示\n");
printf("若为角度制,请输入ang;若为弧度制,请输入rad\n");
printf("请输入(输入完后按回车):");
for(i=0;i<3;i++)
{
scanf("%c",&str[i]); //输入角度、弧度
}
if(str[0]=='r')
{
return 0;
}
if(str[0]=='a')
{
return 1;
}
}
之后,我们需要判断进行哪类三角函数的运算,实现代码如下:
int sin_cos_tan(char yunsuanfu)
{
scanf("%c",&yunsuanfu);
if(yunsuanfu=='s')
{
return 1;
}
if(yunsuanfu=='c')
{
return 2;
}
if(yunsuanfu=='t')
{
return 3;
}
}
最后,我们需要输入数据进行运算,用到了
<math.h>
库中自带的运算函数。
整体程序源代码如下:
#include <stdio.h>
#include <math.h>
#include <windows.h>
#define pi 3.14159
int i;
int ang_or_rad(char str[3])
{
printf("请输入选择角度制表示还是弧度制表示\n");
printf("若为角度制,请输入ang;若为弧度制,请输入rad\n");
printf("请输入(输入完后按回车):");
for(i=0;i<3;i++)
{
scanf("%c",&str[i]); //输入角度、弧度
}
if(str[0]=='r')
{
return 0;
}
if(str[0]=='a')
{
return 1;
}
}
int sin_cos_tan(char yunsuanfu)
{
scanf("%c",&yunsuanfu);
if(yunsuanfu=='s')
{
return 1;
}
if(yunsuanfu=='c')
{
return 2;
}
if(yunsuanfu=='t')
{
return 3;
}
}
int main()
{
char c;
char str[3];
int n;
double x;
int panduan,jianyan;
panduan=ang_or_rad(str);
if(panduan==0)
{
printf("若进行正弦运算,请输入s\n");
printf("若进行余弦运算,请输入c\n");
printf("若进行正切运算,请输入t\n");
printf("请输入(输入完后按回车):");
scanf("%c",&c); //滤掉换行字符
char yunsuanfu;
jianyan=sin_cos_tan(yunsuanfu);
printf("请输入需要运算是数值和运算次数\n");
printf("例如,输入 0.432 10 即对0.432进行10次同名的三角运算\n");
printf("本计算器采用浮点运算,存在误差(尤其角度制表示时)属于正常现象,不可用于精确问题求解\n");
printf("请输入(输入完后按回车):");
scanf("%lf%d",&x,&n);
if(jianyan==2)
{
for(i=0;i<n;i++)
{
x=cos(x);
}
printf("%lf",x);
}
if(jianyan==1)
{
for(i=0;i<n;i++)
{
x=sin(x);
}
printf("%lf",x);
}
if(jianyan==3)
{
for(i=0;i<n;i++)
{
x=tan(x);
}
printf("%lf",x);
}
}
if(panduan==1)
{
printf("若进行正弦运算,请输入s\n");
printf("若进行余弦运算,请输入c\n");
printf("若进行正切运算,请输入t\n");
printf("请输入(输入完后按回车):");
scanf("%c",&c); //滤掉换行字符
char yunsuanfu;
jianyan=sin_cos_tan(yunsuanfu);
printf("请输入需要运算是数值和运算次数\n");
printf("例如,输入 43.2 10 即对43.2度进行10次同名的三角运算\n");
printf("本计算器采用浮点运算,存在误差(尤其角度制表示时)属于正常现象,不可用于精确问题求解\n");
printf("请输入(输入完后按回车):");
scanf("%lf%d",&x,&n);
x=x*pi/180;
if(jianyan==2)
{
for(i=0;i<n;i++)
{
x=cos(x);
}
printf("%lf",x);
}
if(jianyan==1)
{
for(i=0;i<n;i++)
{
x=sin(x);
}
printf("%lf",x);
}
if(jianyan==3)
{
for(i=0;i<n;i++)
{
x=tan(x);
}
printf("%lf",x);
}
}
printf("\n若还想再运算,请记录数据后关闭程序,重新打开\n");
system("pause");
return 0;
}
效果如图:
附:
本程序中用到了
<windows.h>
库中的
system("pause");
语句,用于实现程序的暂停。也就是说,我们运行程序后,可以通过生成的.exe应用程序文件直接进入计算器进行运算。
版权声明:本文为weixin_46695826原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。