STL好
<cmath>
·ceil:向上取整,返回大于或等于函数参数,并且与之最接近的整数
用 法:double ceil(double x);
注意:向上取整的时候,正数,则直接将当前整数加一;负数,则将整数后面的数据抹除;整数,则不变。
·floor:向下取整,返回小于或等于函数参数,并且与之最接近的整数
用法:double floor(double x);
注意:向下取整的时候,正数,则取其整数部位,抹除小数部位;负数,则取其整数加一;整数,则不变
·round:四舍五入
用法:round(number,digits) ***//number,要四舍五入的数,digits是要小数点后保留的位数
注意:正数,小数位大于5,则整数位加一,小数位小于5,则整数位不变,抹除小数位;负数,小数位小于5,则整数位不变,抹除小数位,小数位大于5,则整数位加一;整数,则不变。
<algorithm>
·reverse:反转函数(string/字符数组/自定义任意类型数组)
用法:
(1)string反转:
string a;//定义
//输入等操作
reverse(a.begin(),a.end());//反转
//其他操作
(2)字符数组反转:
char a[101];
cin.getline(a,sizeof(a));
int m=strlen(a);
reverse(a,a+m);
puts(a);
(3)自定义类型数组反转:
/*例:调用的时候reverse1(a,n1,n2);意思就是反转数组a在[a[n1],a[n2]]之间的元素,并且修改数组。
如果你数组类型是int类型,那么你就把typedef char elemtype;中的char改成int,同理,其他类型改成相应类型即可。*/
#include<iostream>
using namespace std;
typedef char elemtype;
void reverse1(elemtype *a,int i,int j)
{
elemtype c;
while(i<j)
{
c=a[i];
a[i]=a[j];
a[j]=c;
i++;
j--;
}
}
int main()
{
elemtype a[100];
int n,n1,n2;
cin>>n>>n1>>n2;
for(int i=0;i<n;++i)
cin>>a[i];
reverse1(a,n1,n2);
for(int i=0;i<n;++i)
cout<<a[i]<<' ';
return 0;
}
<iomanip>
·保留小数点后n位
cout << setiosflags(ios::fixed) << setprecision(n) << 被操作的数 << endl;
·保留n位有效数字
cout << setprecision(n) << 被操作的数 << endl;
<cctype>
·isdigit():检查参数是否为十进制数字字符
(其实就是检查参数是不是数字~)返回值:若参数为阿拉伯数字0~9,则返回非0值,否则返回0。