字符。将次数数组中最大值改成零,在剩下的元素中找出最大值,即为第二大值。同理可找出第三大的值。由于记录了最大值和位置,可以得知最大值和对应的字符。
124
数据结构说明
所有常量,变量和方法存在于Form1类中。属性i
putc
t描述输入字符数组char字符对应的次数数组i
t
方法
privatevoidbutto
1_Clickobjectse
derEve
tArgse
描述执行函数判断是否为中文字符判断是否为英文字符排序和显示
privatestaticBoolea
isChi
esecharcprivatestaticBoolea
isE
glishcharcprivatevoidOrderi
t
umi
tle
charc
125
234567891011
关键算法描述
privatevoidbutto
1_Clickobjectse
derEve
tArgsei
tijflagthisI
itC
ti
puttextBox1TextToCharArrayfori0ii
putLe
gthiflag0ifisChi
esei
putiisE
glishi
puti判断是否计数字符串转换字符数组
f1213141516171819置2021222324252627282930313233343536373839404142434445464748495051525354
forj0jijifi
putji
putic
tjflag1breakifflag0c
ti1Orderc
ti
putLe
gthi
put对c
t排序判断中文如果没有重复,则算是第一次出现,计数1前面的计数加一标志已经计过数若有重复是否有重复
不再检查更多重复,保证所有计数只记录在第一次出现的位
privatestaticBoolea
isChi
esecharc
ifc19968c40869u
icode汉字编码范围retur
trueelseretur
false
privatestaticBoolea
isE
glishcharc
判断英文
ifcaczcAcZretur
trueelseretur
false
privatevoidOrderi
t
umi
tle
charci
tmax10i
trec10i
tmax20i
trec20i
tmax30i
trec30i
ti
排序
f555657585960616263646566676869707172737475767778798081
fori0ile
i1if
umimax1max1
umirec1i
umrec10去除第一名fori0ile
i2if
umimax2max2
umirec2i
umrec20去除第二名fori0ile
i3if
umimax3max3
umirec3itextBox2Textcrec1ToStri
gtextBox5Textmax1ToStri
gtextBox3Textcrec2ToStri
gtextBox6Textmax2ToStri
gtextBox4Textcrec3ToStri
gtextBox7Textmax3ToStri
g
13设计总结
131性能评价
优点:判断中英文方法简单;记录次数方法便捷,只需要一个数组即可完成;排序方法复杂度低。代码清晰流畅,程序健壮不易出错。132问题总结
出现过的问题:在寻找重复字符过程中,曾试图将重复的字符赋值为‘0‘,结果出错,原因是不能够直接赋值字符数组。解决办法是,增加breakr