1.c的格式化输入输出:
  printf()和scanf()函数可以较好实现格式化输入输出,例子如下:
  printf("%3d",3); //结果为__3 (_为空格)
  printf("%03d%02d",5,3); //结果为 5__3
  printf("%.2lf",3.14156);//结果为3.14
  scanf("%2d",&a);//当输入流为123时,a=12
  scanf("[%2d]",&a);//当输入流为[123456][123]时,a=12
  scanf("%d-%d-%d",&a,&b,&c);//当输入流为123-1-32时,a=123,b=1,c=32
  更高级的还要限制输入字符集等功能,大家有兴趣可以百度
2.ACM常用变量类型:
  int 32位整型变量,能表达数据范围为-2^31~2^31-1
  char 8位整型变量,能表达数据范围为0~255,可表示整数或字符,字符以ASCII码形式存储,char数组可以用于存储字符串
  double 64位浮点型变量,可表示浮点数
  float 32位浮点型变量,可表示浮点数。!!!注意,一般情况请勿用,偶尔会因为一些未知原因导致结果错误,可完全用double代替
  string 无限长度c++字符串变量,只能用cin输入,因其内置众多库函数,必要时刻可用于代替char数组,详见库函数介绍
  如果我说在gcc下long和int的范围是一样大小的,你们别伤心,所以没必要用long,要就用long long
  long long 64位整形变量,为了弥补int数据范围的不足,long long为gcc编译器(linux下)所支持的64位整形变量,范围是-2^64~2^64-1,定义格式为long long a;,输入格式为cin>>a;或者scanf("%lld",&a);输出类似。
  __int64 同long long,不同点为VC6.0等windows下编译器不支持long long,而支持__int64,输入格式为scanf("%I64d",&a);  (深大OJ用的是gcc编译器)
  指针类型及自定义类类型有兴趣自己了解
3.编程注意事项
1)血的教训告诉我们,记得int main()和return 0;
2)不要用c++系统头文件的.h形式(iostream.h等)
3)要对数据范围心里有数,爆int用long long,爆long long换想法,实在不行就尝试高精度
4)codeblocks用的是Linux下编译器,VC6.0及VS各版本用的Windows下编译器,注意区分不同。我们OJ及大多数OJ是Linux下编译器,因此强力推荐codeblocks
5)printf及scanf的速度比cin,cout快,当输入(输出)数据很多的时候,请用scanf(printf),不然Time Case Limit,当然,全部都用c版本输入输出是一种很好的方案。
6)OJ的内存限制一般为65536KB,即指大概最多可开8000000左右的数组,大家在开数组时要有度,但勿吝啬,多开几十的数组是常见做法。
  尽量不要用动态分配(new,malloc,calloc等),不是指不可以,但我们已经在用它们时得到过教训(各种Runtime Error)
  大数组请定义为全局变量,因为一个函数中定义的数组大小是无法达到8000000这种数字的,一般为十万级
7)请不要把VC6.0中允许的错误写法使用到OJ上,唯有Compile Error,且尽少在循环体里定义数据。说的是这种:
   for(int i=0;;) do something;
   for(i=0;;) do something;//你们应该知道这行中的i为未定义
8)OJ的时间限制一般为1ms~10ms,意味着在程度运行时我们可以进行大约千万级次的循环,比如,若有四层for嵌套而每个for都100次的话,将是100*100*100*100,也将是超时Time Case Limit。
9)少用指针
4.常见库函数
math.h
  sqrt(n) 求浮点数的平方根
  pow(x,y) 求x的y次方
  sin() cos() tan() asin() acos() atan() 求浮点数的三角函数,其中acos(-1.0)即PI的浮点值
  log(x) 求x的ln
  exp(x) 求e的x次方
  log10(x) 求x的lg
  fabs(x) 求浮点数x的绝对值
stdlib.h
  abs(x) 求整型变量x的绝对值
string.h
  strlen(s) 求char数组s[]的字符串长度
  strcpy(x,y) 把字符串y拷贝为字符串x
  strcmp(x,y) 按字典序比较x和y的大小,x小于y返回-1,x等于y返回0,x大于y返回1
  algorithm
  abs() 求x的绝对值
  sort(a,a+n) 对数组a进行升序排序,n为数组长度
就那么多,其它的以后再了解。

随机推荐

  1. PL/SQL 记录集合IS TABLE OF的使用

    在PL/SQL代码块中使用select into 赋值的话,有可能返回的是一个结果集.此时,如果使用基本类型或自定义的记录类型,将会报错. 因此,需要定义一个变量,是某种类型的集合.下面以一个基于表的 ...

  2. js数组操作的常用方法

    数组:arr=[1,2,3,4,5]; 1.数组转换成字符串,不会修改原数组内容: arr.join(); // "1,2,3,4,5" arr.join("" ...

  3. oracle命令的缩写原型单词方便记忆总结

    $ORACLE_HOME/bin下的utilities解释 Binary              First Available        Description adapters        ...

  4. 段落排版--对齐(text-aliagn)

    想为块状元素中的文本.图片设置居中样式吗?可以使用text-align样式代码,如下代码可实现文本居中显示.(那么什么是块状元素呢?后面会讲到呢~) h1{ text-align:center; } ...

  5. Qt Quick 与 QML语言(初学笔记1)

    Qt Quick Qt Quick是一些新的UI技术的集合,用来帮助开发者创建一种现在越来越多用于手机.多媒体播放器.机顶盒以及其他便携式设备上的直观的.现代的.流畅的用户界面.简单来说,Qt Qui ...

  6. cos-26上传个人案例

    package cn.gdpe.upload; import java.io.File;import java.io.IOException;import java.util.Enumeration; ...

  7. confluence的权限管理

    上一篇解讲如何破解,安装confluence5.8.10,这次主要是看权限管理的实现.因为公司对知识的管理不仅是简单的分享,还要求不同权限的人看到不同的内容,所以在一开始就需要对权限这一块有所了解,以 ...

  8. smarty 的学习----ubuntu下初步配置

    转自:http://blog.csdn.net/ma332567575/article/details/7904124 首先去www.smarty.net下载最新版的Smarty 把下载后的压缩包在网 ...

  9. PHP第一课笔记

    打算以后学习PHP,花3个月时间学会它,自己为自己加油.每天坚持学习,第一天感觉良好,没开始写,所以不敢觉难,在难也学,加油,me!! PHP笔记记录(2014.7.27) ★web开发的介绍 1.动 ...

  10. C++函数重载遇到了函数默认参数情况

    一.C++中的函数重载 什么是函数重载? 我的理解是: (1)用一个函数名定义不同的函数: (2)函数名和不同参数搭配时函数会有不同的含义: 举例说明: #include <stdio.h> ...