#include<math.h>
exp函数
表示方法:exp(x)
表示e的x次方;
pow(x,n);
向上取整:ceil(); 向下取整 :floor( ); 四舍五入:round(); 总是舍掉小数部分:trunc();
/* round vs floor vs ceil vs trunc */
#include <stdio.h> /* printf */
#include <math.h> /* round, floor, ceil, trunc */
int main ()
{
const char * format = "%.1f \t%.1f \t%.1f \t%.1f \t%.1f\n";
printf ("value\tround\tfloor\tceil\ttrunc\n");
printf ("-----\t-----\t-----\t----\t-----\n");
printf (format, 2.3,round( 2.3),floor( 2.3),ceil( 2.3),trunc( 2.3));
printf (format, 3.8,round( 3.8),floor( 3.8),ceil( 3.8),trunc( 3.8));
printf (format, 5.5,round( 5.5),floor( 5.5),ceil( 5.5),trunc( 5.5));
printf (format,-2.3,round(-2.3),floor(-2.3),ceil(-2.3),trunc(-2.3));
printf (format,-3.8,round(-3.8),floor(-3.8),ceil(-3.8),trunc(-3.8));
printf (format,-5.5,round(-5.5),floor(-5.5),ceil(-5.5),trunc(-5.5));
return 0;
}
输出:
value round floor ceil trunc
----- ----- ----- ---- -----
2.3 2.0 2.0 3.0 2.0
3.8 4.0 3.0 4.0 3.0
5.5 6.0 5.0 6.0 5.0
-2.3 -2.0 -3.0 -2.0 -2.0
-3.8 -4.0 -4.0 -3.0 -3.0
-5.5 -6.0 -6.0 -5.0 -5.0
#include<ctype.h>
isdigit 函数
表示方法:Int isdigit ( char c);
表示:判断字符C是否为数字 ,当C为数字0--9时返回非0值,否则返回0;
# include<functional>
less<int>() 从小到大;
greater<int>() 从大到小;
sort(a,a+n,less<int>());
二分法求根
while(l-r>1e-10) 四位小数;
m=r+1e-12;
# include<stdlib.h>
给75个int类型的数据项分配内存,可以使用以下的语句:
动态分配 (int *) malloc(75*sizeof(int));
释放内存 free();
c++中: new(); delete();
void swap2(int & a,int & b) //“&”在函数内改变参数值,也会修改函数实参。
(传引用)by reference
<span style="font-size:18px;"># include<iostream>
# include<cstring>
# include<string>
# include<sstream> //----stringstream
# include<algorithm>
using namespace std;
string line;
while(getline(cin,line)) //读取一行数据
{
int sum=0,x;
stringstream ss(line); //创建一个字符串流ss
while(ss>>x) sum+=x; //读取
cout<<sum<<endl;
}</span>
STL中unique的函数 unique的功能是去除相邻的重复元素(只保留一个),还有一个容易忽视的特性是它并不真正把重复的元素删除。他是c++中的函数,所以头文件要加#include<iostream.h>,具体用法如下:
int num[100];
unique(num,num+n)返回的是num去重后的尾地址,之所以说比不真正把重复的元素删除,其实是,该函数把重复的元素移到后面去了,然后依然保存到了原数组中,然后返回去重后最后一个元素的地址,因为unique去除的是相邻的重复元素,所以一般用之前都会要排一下序。
<span style="font-size:18px;"> int num[100];
for(int i=0;i<10;i++)
scanf("%d",&num[i]);
sort(num,num+10);
int tot=unique(num,num+10)-num;
cout<<tot<<endl;
return 0;</span>
lower_bound() 与upper_bound()
1. 函数lower_bound()在first和last中的前闭后开区间进行二分查找,返回大于或等于val的第一个元素位置。如果所有 元素都小于val,则返回last的位置,且last的位置是越界的!!~
2. 函数upper_bound()返回的在前闭后开区间查找的val的上界的位置。
如果插入元素大于数组中全部元素,返回的是last。(注意:此时数组下标越界!!)