止损,也叫“割肉”,是指当某一投资出现的亏损达到预定数额时,及时斩仓出局,以避乎粗仔免形成更大的亏损。股票投资与赌博的一个重要区别就在于前者可通过止损把损失限制在一定的范围之内,同时又能够最大限度地获取成功的报酬,换言之,止损使得以较岁汪小代价博取较大利益成为可能。止损的目的就在于投资失误时把损失限定在较小的凳茄范围内。股市中无数血的事实表明,一次意外的投资错误足以致命,但止损能帮助投资者化险为夷。
开始的数据类型是string,这个string包含了空格和后面的内容,所以再输入第二个数据ChenRuiyi时,把他输入给前面的期末考分数!下面是从别处copy的,声明>.
该题目出自NOIP2005提高组复赛第一题
[问题评估]
这个题目据问题本身而言是相当简单的,没有牵涉到过多的算法,属于普及型试题。同时也是对实际问题一种分析和判断。总的来看,本题在方向上,向现实问题迈出了一步,是信息学和生活有了更多的联系。
问题的算法是模拟。当中唯一的难点就是数据处理,考察点为数据库的建立和统计。
【程序实现】
由于程序数据范围只有100,当中不牵涉到数据移动,所以用一个纪录型数组,或者多个数组均可,在这里我们使用纪录型来描述。
对于输入数据有两种方式来实现。
法一〉仿肆漏逐个字符累加。
首先定义C:char然后利用Until c=‘ ’作为终止符,将读入的字符连接存储到a[i].name中。
代码为:
Repeat read(c)a[i].name:=a[i].name+cuntil c=’ ‘
a[i].name:=copy(a[i].name,1,length(a[i].s)-1)
这样做的好处是,后面的值可以直接用read语句读入。但是最后一个值后,要记得readln
法二〉一次读入,然后分离。
这样做需要逐个分离,对本题来说稍显复杂,但对NOIP来说此方法必须掌握,有的时候一定要用。
具体实现,读入一个字符串S。利用pos(‘ ‘,s)找出空格位置。再利用Copy函数,和Val函数进行截取,和转换。
部分代码:(s:stringj,ok:integer)
readln(s)
j:=pos(‘ ‘,s)
a[i].name:=copy(s,1,j-1)
s:= copy(s,j+1,50)//当长度〉字符串长度是,为后面全部截取。
j:=pos(‘ ‘,s)
Val(copy(s,1,j-1),a[i].qp,ok)
s:= copy(s,j+1,50)
…..
对于符号用if语句作一下判断就是了,太easy不写了,后面还有几个值,用同样方法处理就可以了。
以上完成了数据库的建库工作,后面是统计,当然,我们在没读完一行数据后就可进行统计。用If语句判断他是否能得到相应的分值即可。分5条If语句写,每回可以就加入相应的分值。
将每个的分值汇总计入到总数变量ZD当中。与当前最大值进行比较,得到Max对应的I值。后面就是输出的问题了。
[小结、注意]
本题为简备烂单题,只要思路明雹轿确清晰,就可AC。时间复杂度O(n)。但有一个细节,ZD变量必须定义Longint或以上类型否则会Error201的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)