PAT记录1--杂记

  去年这个时候参加PAT是第一次去,没有任何经验,而且使用的还是java写的题目,因为没学过c++,,,只能用比较熟悉一点的java了,但这次用了c++发现java根本不适合做这种比赛的题目,老师也说过,这种比赛一般都是用c++,再比如ccf的csp认证,PAT的认证,ACM,那些做题目的人几乎都是用的c++,然后是c,最后可能才是java,或许那些用java的也是觉得自己的java比那些学得好些,而我根本没上过c++的课,但现在基本会些c++了,可以做些题目就够了。

  1、看到比较大的的整数,直接开头定义typedef long long ll;

  因为如果不这样写的话,你肯定会有测试点通过不了,它肯定会在零界点设置一个测试点,这个测试点不过,你就拿不到分。

  2、cmath函数,floor(double x)向上取整,ceil(double x)向下取整,round(double x)四舍五入

  比如四舍五入,我看书上的四舍五入我居然还没看懂,但程序就是那样四舍五入,这个四舍五入好想我们正常的四舍五入不太一样,比如3.45四舍五入不应该是4吗?但答案是3,好吧,应该是计算机只看整数的后面一位,也就是精确到哪一位的下一位。

  3、数组赋初值,menset(a,o,sizeof(a)),men的意思是member吧,成员的意思,set就是设定了,给成员设定值。

  有了这个函数就不用for循环一个一个赋值了,还有一点就是可以重复利用个数组,不用再建一个数组,这个函数对二维数组也适用,对结构体数组也适用,用法有点点区别,可以自己百度看看。

  4、对字符串的操作中有两个函数,一个是s.size(),还有一个是stelen(s);这两个函数是有区别的,下面用一张图反应他们的区别 

s.size()他们的值都是一样,就是分配的空间大小,但strlen(s)就不一样了,这个表示的是直到读到‘\0’之前的字符的多少。

  5、在给小数排序的时候不能直接写bool ...  a>b;来排序,这样会有误差,从而使得答案错误,今天就遇到了这个问题,一个测试点没过,找了大概15分钟才找到这个原因。

  我自己写了一个排序,但是给小数排序,没有用精度,所以就错了,但是使用它自带的排序就不会错,这也告诉了我们系统自带的工具还是很强大的。直接sort(a,a+n),就把小数排序了。

  6、在用printf()格式化输出是遇到要输出百分之多少的时候不能直接百分之多少,需要用两个百分号,相当于一个是转义一样;

posted on 2019-03-24 11:41  心所驰  阅读(44)  评论(0)    收藏  举报