一、问题及代码
#include<iostream.h>
#include<cmath> //调用数学公式
void main()
{
double num1,sum,num2;
int op;
cout<<"请输入num1,num2"<<endl;
cin>>num1>>num2;
cout<<"输1:对num1/num2取余"<<endl;
cout<<"输2:对num1开方"<<endl;
cout<<"输3:对num1取下整"<<endl;
cout<<"输4:对num1取上整"<<endl;
cout<<"输5:对num1取绝对值"<<endl;
cout<<"输6:num1,num2为三角形两边求第三边"<<endl;
cin>>op;
if(op==1)
{sum=fmod(num1,num2); //double fmod (double,double); 返回两参数相除的余数
cout<<"取余"<<sum<<endl;
}
if(op==2)
{ sum=sqrt(num1); //double sqrt (double);开平方
cout<<"开平方"<<sum<<endl;
}
if(op==3)
{
sum=ceil(num1); //double ceil (double); 取上整,返回不比x小的最小整数
cout<<"对num1取下整"<<sum<<endl;
}
if(op==4)
{
sum=floor(num1); //double floor (double); 取下整,返回不比x大的最大整数,即高斯函数[x]
cout<<"对num1取上整"<<sum<<endl;
}
if(op==5)
{
sum=fabs(num1); //double fabs (double);求实型的绝对值
cout<<"对num1取绝对值"<<sum<<endl;
}
if(op==6)
{
sum=hypot(num1,num2); //double hypot(double x,double y);已知直角三角形两个直角边长度,求斜边长度
cout<<"知三角形两边num1,num2,求斜边"<<sum<<endl;
}
else cout<<"输入错误";
}
二、运行结果:
三、心得体会:
想试试调用<cmath>来解决常见的数学问题,就写了这段代码。
刚开始想用新学的switch,编了之后编译没错,运行却不行。
问了老师后才知道
int op,cin>>op;电脑会认为输入的是整数1, 所以判断的时候就直接用 case 1
char op ,cin>>op,电脑才认为你输入的是字符1;判断就用 case '1'
char op ,cin>>op,电脑才认为你输入的是字符1;判断就用 case '1'
四、知识点总结
调用<cmath>
if..else
swith{ case..},case识别字符与数的问题