程序设计之语言篇


1、整数/整数=整数 浮点数/浮点数=浮点数
2、数学函数(#include<math.h>)sqrt可以用来计算整数和浮点数的算术平方根
3、pi的规范写法pi=const doule pi=acos(-1); (#include<math.h>)尽量用const声明常数
4、在算法竞赛中每行输出应以回车符结束,包括最后一行
5、三变量排序:
if(a>b){t=a;a=b;b=t;}//执行完之后a<=b
if(a>c){t=a;a=c;c=t)}//执行完之后a<=c,且a<=b依然成立
if(b>c){t=b;b=c;c=t)}
6、double输入输出用%lf
7、判断n是否为完全平方数用一个int型变量m存储sqrt(n)四舍五入后的整数,然后判断m的平方是否等于n。函数floor返回不超过x的最大整数
int m=floor(sqrt(n)+0,5);防止误差影响+0.5
if(m*m==n)printf("%d\n",n);
8、continue是指跳回for循环的开始,执行调整语句并判断循环条件(即直接进入下一次循环),而break是指直接跳出循环。
9、int为32位整数,范围从-2147483648-2147483647
10、10的-6次方表示方法le-6
11、定义一个很大的常数INF,最大值等于-INF,最小值INF,可以直接使用INT_MIN; INT_MAX;
12、文件读取freopen("input.txt","r",stdin);从文件input.txt读入,freopen("output.txt","w",stdout);写入文件output.txt
13、比较大的数组应尽量声明在main函数外,否则程序可能无法运行
14、快速排序sort(a,a+n);默认升序,如果要采用降序排序 bool  cmp ( int   a, int   b) { return   a>b;}  sort(a,a+n,cmp);
15、结构体排序的写法
struct aray{int  s;int t;}m[205];bool cmp(const aray&a,const aray &b){//变量类型为同一结构体类型if(a.s!=b.s)return a.s<b.s;elsereturn a.t<b.t;}

16、对于变量n,n++和++n都会给n加1,但当他们用在一个表达式中时,行为有所差别:n++会使用加1前的值计算表达式,而++n会使用加1后的值计算表达式。
17、比较大的数组应尽量声明在main函数外,否则程序可能无法运行。
18、从数组a复制k个元素到数组b,可以写成:memcpy(b,a,sizeof(int)*k).当然,如果数组a和b都是浮点类型的,复制时要写成memcpy(b,a,sizeof(double)*k).memcpy包含在头文件string.h中,如果需要把数组a全部复制到数组b中,可以写的简单一点:memcpy(b,a,sizeof(a)).
19、memset(a,0,sizeof(a))的作用是把数组a清零,它也在string.h中定义
20、scanf("%s",s)中不要在s前面加上&符号,如果是字符串数组char s[maxn][maxn],可以写成scanf("%s",s[i]);,遇到空白字符会停下来。
21、strchr的作用是在一个字符串中查找单个字符,而这个sprintf输出到字符串。strcpy(a,b),strcmp(a,b),strcat(a,b)来执行赋值、比较和连接操作。头文件string.h
21、fgets(buf,maxn,fin)读取完整的一行,其中buf声明为char buf[maxn],这个函数读取不超过maxn-1个字符,然后再末尾添上结束符“\0 "
22、isalpha来判断字符是否为字母,类似的还有idigit、isprint,在ctype.h中定义,写法:isalpha(字符),toupper、tolower等工具用来转换大小写。
23、乘以2可以写成“<<1",2的8次方减1可以写成(1<<8)-1,<<运算符的优先级没有减法高。
24、在算法竞赛中,请总是让main函数返回0
25、往往使用typedef struct{域定义;}类型名;的方式定义一个新类型名。这样就可以像使用原生数据一样使用这个自定义类型。
26、既是最终答案在所选择的数据范围之内,计算的中间结果仍然可能溢出。 
27、iostream提供了输入输出流
28、algorithm提供了一些常用算法,例如min、sort、lower_bound等函数
29、lower_bound的作用是查找大于或者等于x的第一个位置,写法int p=lower_bound(a,a+n,x)-a;//在已排序数组a中寻找x,p是位置索引,找到的p是大于或者等于X值的下标。
30、double型数据开n次方的函数及写法 pow((double)m,1.0/(double)n)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值