杭电2000-2007总结

这是本菜鸟第一次尝试写技术博客,总结一下杭电2000-2007的做题情况。

杭电的第11卷中的题目都是偏基础的,而这头8题,更是基础中的基础,可谓“水中之水”,不过对于熟悉基本的语法,还是有好处的。当然了,在解题的过程中,还是用到了一些基本的、常用的编程技巧,也遇到一些常见的错误。现在就做题情况,总结一下。

2000:把整个测试用例看做是字符串,避免逐个输入字符造成的混乱,不过逐个字符输入也是可以的。可以这样输入:scanf("\n%c%c%c",&a,&b,&c);

本题还用了比较三个变量的经典方法。

 

2001-2003:只要懂得表达式的使用和如何处理多个测试用例,就可以解决。不过在做2003时,领悟到了如果想给整型变量x输入数值,可以如下操作

int * px=&x; scanf("%d",px); 其实px所取代的位置,本质上只需要变量的地址。如果直接写x,系统将x中的值当做地址寻找变量,这样就会造成程序错误了。

 

2004:有两种方法,一种是用选择语句,一种是打表法。在做题的过程中,才知道负整数的整除定义,如果整数除法的结果是小数,无论符号,一律把小数部分裁掉。

比如-9/10=0。

 

2005:月份中的天数是不规则数据,用数组来处理。

使用的累加器求和,使用累加器的时候要注意初始化。

在处理闰年判断时想到,如果对于处理的逻辑条件不清晰时,可以画树状图帮助分析。

 

2006-2007:题目差不多,都是累加或者累乘,但是每个数据都需要判断是否需要累加或者累乘,算是解决(1+2+3……+100) 的变种吧。

2007中的m和n没有说明大小,很容易造成错误。

在做2006时,领悟到了,写程序的时候,要对整个程序的结构有清晰的认识,明白每个循环对应题目的什么要求。

比如代码中的while{}处理一个测试用例;for{}处理每个测试用例中的数据。

 

好了,终于写完了本次解题的总结了。

本菜鸟的第一次原创的技术博客,就此诞生了!

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值