acm一些小细节/技巧

以后没有终止信号的输入统一用 :

while(cin>>a)
{
  ...
}

"1" 不是质数, 要注意. 

 

当需要把一个数组中的数值初始化成正无穷时,为了避免加法算术上溢出或者繁琐的判断,用 memset(a, 0x3f, sizeof(a)) 给数组赋 0x3f3f3f3f的值来代替。

(0x3f3f3f3f的十进制是1061109567,是10^9级别的)

  freopen("in.txt","r",stdin); //输入重定向,输入数据将从in.txt文件中读取
  freopen("out.txt","w",stdout); //输出重定向,输出数据将保存在out.txt文件中
  fclose(stdin);//关闭文件
  fclose(stdout);//关闭文件

关于memset赋值无穷大无穷小  

memset(a,127,sizeof(a));

即得到无穷大。

memset(a,128,sizeof(a));

即得到无穷小,与上述的值互为相反数。

memset(a,60,sizeof(a));

即近似为第一个式子的数值的一半。

memset(a,0,sizeof(a));赋值0

memset(a,-1,sizeof(a));赋值-1

原文地址:https://www.cnblogs.com/GUOGaby/p/13879982.html