acm基本小结

本文总结了ACM编程中的一些常见技巧,包括浮点数输出、PI常量定义、角度弧度转换、四舍五入判断、计时函数、管道输入、文件操作、数的范围、数组复制、字符串处理、字符读写以及批处理测试和assert的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.
printf("%.1lf\n",8.0/5.0);
2.
const double PI = 4.0 * atan(1.0);
3.
sin与cos都是用的弧度
n/180.0*PI;


4. 四舍五入判断整数x
double x;
floor(x+0.5)==x;


5. 计时函数
 #include <time.h>
 cout<<(double)clock()/CLOCKS_PER_SEC<<endl;


6.管道输入
echo 20 | ./a.out


7. 重定向读写文件
  #define LOCAL


  #ifdef LOCAL
  freopen("data.in","r",stdin);
  freopen("data.out","w",stdout);
  #endif


  g++ hi.cpp -DLOCAL




8. fopen法读写文件
  FILE *fin, *fout;
  fin = fopen("data.in","r");
  fout = fopen("data.out","w");


  scanf-----> fscanf(fin,);
  printf-----> fprintf(fout,);


  fclose(fin);
  fclose(fout);


  -------------------------------------------
  #include <fstream>
  ifstream fin("data.in");
  ofstream fout("data.out");
  fin>>a>>b;
  fout<<a+b;






9. 数的范围
long long -2^63~2^63-1 比 -10^19~10^19略窄  %lld
  int -2^31~2^31-1   比  -2*10^9~2*10^9略宽


10. 数组元素复制
  #include <string.h>
  int a[MAXN],b[MAXN];
  memcpy(b,a,sizeof(int)*k);




11. 写入字符串,从字符串读入
  //写字符串
  #include <string.h>
  char buf[100];
  sprintf(buf,"%d%d%d",a,b,c);
  strchr(s,buf[i])在字符串s中查询 char,返回的是指针;


  //读字符串
  char s[50];
  cin>>s;
  sscanf(s,"%d:%d:%d",&HH,&MM,&SS);


  -----------------------------------------------------------------
  #include <sstream>
  char s[1000];
  cin.getline(s,1000,'\n');
  stringstream ss(s);
  __________________________________
  
  string s;
  getline(cin,s);
  stringstream ss(s);




  ss>>a>>b;


  //string的字符串与c字符串的转化
  char s[100];
  string(s);
  s.c_str();


12. 读入字符串(含空格的一句话)
  o1.
    fgetc(fin);返回int 或 EOF
    getchar() == fgetc(stdin);


  o2.
    char buf[MAXN];
    fgets(buf, MAXN,fin);完整地读取一行


13. 字符的处理 
  #include <ctype.h>
  isalpha(); toupper(); tolower(); isdigit(); isprint();


14. 批处理测试
  //test.sh 


  while true; do
  ./r >input 
  ./a < input >output.a
  ./b < input >output.b
  diff output.a output.b
  if [ $? -ne 0 ] ;then break; fi
  done


  然后将文件 chmod +x test.sh 后 ./test.sh


15. assert的使用
  #include <assert.h>
  assert(x>=0);//不满足条件时程序强制终止

















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值