0.读到文件的结尾,程序自动结束
while( ( scanf( “ %d ” ,&a) ) != -1 )
while( ( scanf( “ %d ” ,&a) ) != EOF)
while( ( scanf( “ %d ” ,&a) ) == 1 )
while( ~( scanf( “ %d ” ,&a) ) )
读到一个 0 时,程序结束
while( scanf( “ %d ” ,&a) ,a)
读到多个0时,程序结束
while( scanf( “ %d%d%d ”,&a,&b,&c),a+b+c )//a,b,c非负
while( scanf( “ %d%d%d ”,&a,&b,&c),abc)
1.注意函数sqrt( )的参数只能是float,double,long double型的。
2.EOF是int类型的。
3.纯字符串用puts()输出。数据大时最好用scanf()、printf()减少时间。先用scanf(),再用gets()会读入回车。所以在中间加一个getchar();scanf(“%c%c”,&c1,&c2)会读入空格;建议用%s读取字符串,取第一个字符。
4.数组定义int a[10]={0};可以对其全部元素赋值为0;数组太大不要这样,防止CE,全局变量,静态变量自动初始化为0。
5.圆周率=acos(-1.0);自然对数=exp(1.0)。
6.如果要乘或除2^n,用位移运算速度快。a>>n;a<<n。
7.将乘法转换成加法减少时间:log(ab)=log(a)+log(b);将乘法转换成除法防止溢出:a/(bc)=a/b/c。
8.有的题数据范围小但是计算量大可以用打表法,先把结果算出来保存在数组里,要用时直接取出来。
9.浮点数比较时最好控制精度
#define eps 1e-6
fabs(a-b)<eps。
10.INF=0x3f3f3f3f
INF=0x7f7f7f7f
11.各种数据类型的最大值最小值
int类型:INT_MAX,INT_MIN
double类型:DBL_MAX,DBL_MIN
long long类型:
__LONG_LONG_MAX__
LLONG_MIN、LLONG_MAX和ULLONG_MIN,它们分别代表了平台上最小的long long值、最大的long long值,以及最大的unsigned long long值。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!