*1、巧用 scanf()
当没告诉你输入几个时 ,直接输入一串数字,以空格分开,换行结束;
int a[maxn];
int n;
char c;
While(scanf(“%d%c”,a+n,&c)&&c!=’\n’)
{
n++;
}
2 当没告诉你有几组数据时,只告诉你 每组数据的结束标志,程序的结束标志时;
要采取顺序结构的思想,while(判断程序结束条件&&接收数据){ //在里面嵌套 循环输入的数据
。。。 ; //数据可能要预先处理一下;
while(1){ //结束条件
}//每组的输入情况;
if(条件)//是否满足输出条件;
} //end ofwhile
3!get个技能 :如何 加快cin、cout的输入输出速度
在主函数中输入下面两行代码,可以加快cin,cout的输入、输出速度,和scanf 、printf 的速度不相上下。
ios::sync_with_stdio(false);//加快cin,cout的速度
cin.tie(0);
4 万能头文件 #include<bits/stdc++.h> 包含了目前C++里面所有的头文件;
5 初始化
5-1 对数组
memset 对整型数组初始化 :
无穷大初始化: memset(dp,127,sizeof(dp))其初始化的dp数组其值已经达到了2139062143,已经几乎快达到了int的上线。要写128的话是负值。
初始化为 0 :memset(dp,0,sizeof(0));
其他初始化 :数组 dp[N] 赋其他初值 比如说 “1”;绝对 不 能用memset(dp , 1 , sizeof(dp));
而且在定义的时候 dp[N]={1},也只是对第一个元素初始化为 1;
5-2 对变量
#include<stdio.h>
#define a 0x7fffffff
int main()
{
int t=0x3f3f3f3f3f;
printf("a= %d\n",a);
printf("t= %d\n",t);
}
a= 2147483647
t= 1061109567