1 / 29
文档名称:

ACM入门基础大杂烩.ppt.ppt

格式:ppt   页数:29页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

ACM入门基础大杂烩.ppt.ppt

上传人:lxydx666 2015/11/22 文件大小:0 KB

下载得到文件列表

ACM入门基础大杂烩.ppt.ppt

文档介绍

文档介绍:ACM入门基础大杂烩
主讲人:陈星毅
基础34题做完没有啊鲜肉们!!!
34题
还有鲜肉没改昵称,这让我很苦恼。
叶良辰有100种方式在杭电oj上wa题,却没办法知道你们是谁。
下面说下出现比较多的问题还有一些需要注意的地方。
需要注意的
1、记得最后结果要有换行符。。不要多输出空格。pe是那么难以言表的痛。
2、不要在中文输入模式下写代码。。比如()和(),如果没发现查错的时候会心、很、累、很、累。。。
3、代码格式:
不要把代码都挤到一行,,一般来说要么
while(){
//program
}
要么
while()
{
//program
}
然后一般编译器都是有自动缩进的,,没有的话可以按tab,或者四个空格,肉眼debug的时候看着会舒服一些。
4、写 int main()而不要写void main()并且,在main函数的最后记得加上return 0; 即
int main(){
//program
return 0;
}
5、using namespace std;
这一行可以一直写上,反正不会错。
6、开始慢慢培养自己的肉眼debug能力,或者学会用编译器调试程序,自己找出bug。比如一段程序:
#include<iostream>
int main(){
for(i=0;i<10;i++) cout<<i<<endl;
return 0;
}
这份代码有几个问题?
7、(signed)int的最大值在2*10^9多,(signed)long long的最大值在9*10^9多,做题的时候记得看清楚数据范围。(阶乘的数是很大的,,随随便便就爆long long了)。
8、输入多组数据的时候,很多小鲜肉会忘了把一些值初始化,或者初始化位置不合理,导致各种花式wa。通常
while(~scanf()){
//初始化初始化初始化
//程序主体
}
(有没发现这页的字变大了)
7、考虑到去年的一些情况。。这里讲讲字符串的存储等常见问题。
先讲char[]的字符串。
在头文件cstring里面有一个函数strlen,返回字符串的实际长度。定义了char s[100];输入heheda。那么调用strlen(s)返回实际长度6。
通常int len=strlen(s);
for(int i=0;i<len;i++) 这样来遍历。
每次输入一个char[]时,它都会被重置,所以没有必要在输入之前memset。
多个字符串的存储:
我们知道char[]只能存储一个字符串。如果要多个呢?——
char的二维数组。
比如char ss[10][100]; 那么ss[0]、ss[1]等就相当于上面的s了。
string类的字符串:
string a;()()即为实际长度。
多个字符串的时候,string[]即可。
输入输出
前方高能!
前方有一大波文字来袭!
说好的图片呢怎么没了!
主讲人懒啊!!!
啊!!
啊!
C++的输入:
输入常用的有cin, , getline, 。其中,空格和换行符都可以作为cin输入结束的标志,。
cin是比较6的,可以输入int,long long,double,float,char,char[],string等等一切类型。。
比如:需要输入字符串”heheda”,定义string s;
cin>>s; 或者 getline(cin,s); 都可以。
而如果需要输入”he he da”(中间有空格),若用cin>>s则只能读入”he”,而getline(cin,s)依然能将整行字符串读入。,但是是对char[]的读入。
(注意,包括空格和换行符)。

C的输入:
有些同学会问为什么还要学C的输出——原因是,因为它运行比较快。我们知道ACM竞赛的程序运行是有时限的,当程序的运算量较大且输入数据较多时,用C++的输入还是用C的输入有可能成为你是否能通过这道题的关键。
这里同样只介绍常用的C的输入。
scanf函数与gets函数。
格式:
scanf(“%d”,&a);//a为int型
scanf(“%lf”,&a);//a为double型
scanf(”%f”,&a);//a喂float型
scanf(“%s”,a);//a为char[]型
同样C也有整行读入的函数:
gets(s);//s为char[