昨天天气不太好,一整天都没有阳光,导致我的心情也有点郁闷,没有把昨天本该做的题做完,该写的博客写完,就把任务拖到了今天了。
2014:本题需要用到累加和遍历求极值的技巧。用大一时王SIR的话说,就是开设一个“擂台”,遍历一遍数据,谁最“极”的,谁就登上擂台。如果要求记录极值的位置,还需要在开设一个记录数据在数组中的位置的“擂台”。
2015:昨天提交过,但是WA了,今天调式才发觉是输出的表达式搞错了。原因就是把总数当做平均数来输出了。
本题的关键就是要把整个程序分成两部分,一部分是输出完整的m个一组的平均数,另外一部分就是输出余下的r项(如果有的话)的平均数。
本题还是使用了isOut变量来判断是否已经输出了第一个值,以此来判断要不要在输出的变量前输出空格。
2016:本题只需要求出最小值及其位置和交换两个变量的技巧,我把最小值的“擂台”初始化为0x7fffffff,也就是int中的最大值。
2017:使用遍历和计数器就可以解决。
2018:斐波那契数列的变种,用打表法解决。
2019:首先把a[n]赋为x,保证x一定会停下来。然后从0开始遍历数组,在第一个大于x的变量那里停下来。
2020:本题使用了qsort(a,n,sizeof(int),comp)函数,需要定义comp(const void *a,const void *b)函数,当comp返回大于0的数时,表明(a,b)是逆序。
在本题中,当abs(a)<abs(b),则(a,b)为逆序。