
Volume 1.0 String
文章平均质量分 78
深蓝色的猫
一个努力成长为大牛的蒟蒻程序媛
展开
-
UVa OJ 537
1、scanf不能读\n,要用getchar()消去\n。2、ch是ASCII码,需要减去‘0’才能正常使用。3、使用强制类型转换。 #include #include int n,ch,pre,i;double P=0.0,I=0.0,U=0.0;void trans(int p);int main(void){ scanf("%d",&n原创 2013-01-29 12:57:00 · 374 阅读 · 0 评论 -
UVa OJ 644
1、题目是简单,但是想当然,活该WA那么多次。2、j从0到i-2,k从j+1到i-1,这列举的仅是组合数,而倒过来还要判断,于是应该列举i的平方次,而不是它的一半。3、注意fgets是以\0结尾,但是\n也会读进,所以判断比较是否结束的依据不是\0而是\n。 #include #include int main(){ char s[10][20]={""};原创 2013-01-30 21:11:54 · 317 阅读 · 0 评论 -
UVa OJ 10878
1、奇怪第一次交这个程序编译错误,第二次就AC了。2、注意strcmp的比较是到\0为止,所以要把\n也写进去。(fgets读一行包括\n,并在末尾添加\0)3、枚举是最简单的,LRJ说程序正确是最关键的,所以虽然代码有点弱智,但也无所谓好看不好看了。4、题目考察ASCII码,有o的地方就是1,有空格的地方就是0,二进制转化为十进制,不难。 #include #includ原创 2013-01-30 15:59:26 · 319 阅读 · 0 评论 -
UVa OJ 409
1、这个程序刚开始交上去是runtime error,后来我把char型的三个数组初始化一下就AC了。2、原因可能是我的编译器会给程序初始化而OJ上的不会,于是数组里读到了一些莫名其妙的东西(具体是什么我也猜不到)于是就越界了,所以初始化很重要。3、scanf(“%s”)读入的时候并不会把后面用\0覆盖掉,应该是读到哪覆盖到哪,然后再后面给数组加个\0。4、程序有一个小小的漏洞,如果所原创 2013-01-30 12:10:52 · 428 阅读 · 0 评论 -
UVa OJ 10815
1、非常诡异的代码,原来是RE,过了半个小时交就AC了。2、原来注意到了题目中虽然单词最多5000个,但是会有重复,于是小心翼翼把数组开到6000,想怎么着也不会重复那么多次吧。BUT,我错了。看了网上别人的经验,要开到100000才AC,想想也是,一篇文章,光a/an就重复好多次了。3、关键之处是将a复制到s时要先判断a是不是空串,否则WA。 #include#include原创 2013-01-30 18:32:19 · 397 阅读 · 0 评论 -
UVa OJ 10115
1、这道题交了三次,两次WA,一次AC。2、交第一次之后,发现程序中有一个分号写成了逗号,奇怪的是编译还通过了,看来也许我的编译器帮我自动订正了,但是OJ上的编译器就没这么好心了。3、第二次仍WA,于是我随便输入一些字符串,感觉自己编的这个程序还是很实用的,突然想起来,一个句子我只检索了一遍,但是也许第一次编辑后,形成的新句子又可以用刚才的rule进行编辑,形成循环,所以加上if(flag原创 2013-02-01 00:56:51 · 337 阅读 · 0 评论 -
UVa OJ 401
题目描述:原题很长,大意是判断一个字符串是否回文串或镜像串。所谓回文串就是正读倒读都一样,所谓镜像串就是镜面反射后与原来一样。每一个有镜面反射关系的字符,题目都给出了对应字符,比如“E”和“3”,“A“和”A“。题目特别强调了0和O被认为是相同的,所以在字符中只会出现O(valid character)。关键的知识点:题目每一行都给出了一个包含”valid character“的字符串,所原创 2013-01-26 13:44:52 · 383 阅读 · 0 评论 -
UVa OJ 10361
1、这道题不应该成为难题,但是没有清零导致反复WA,实在得不偿失。2、sscanf在读不到东西时,不会将数组清零,而是保持原来的样子,所以比较好的做法是每次用sscanf之前先将所要写入的字符数组清零。3、预处理是本程序的核心,先用fgets读取一行,再将a中“empty”的部分用'A'来代替。输出的时候再过滤。程序很长,但思路很简单。#include #include int原创 2013-01-28 21:16:16 · 363 阅读 · 0 评论 -
UVa OJ 10010
题目比较简单,注意要点如下:1、scanf语句读了字符串不会读\n,所以要用getchar()消去\n。2、八个方向循环时注意先判断是否越界。3、除最后一行外,输出每行后再输出一空行。除第一行外,要用两个getchar()消去输入中多余的两个回车。#include #include #includeint judge(int i,int j,int len);int原创 2013-01-27 21:41:35 · 363 阅读 · 0 评论