TC官方合作论坛

标题: 用TC完成以下算法,有偿 [打印本页]

作者: zajanmy    时间: 2014-5-25 18:19
标题: 用TC完成以下算法,有偿
本帖最后由 zajanmy 于 2014-5-25 18:36 编辑

2,220,2,230,4,247,5,226,7,242,逗号,235
通过比较220,230,247,226,242,235的大小从而排序(从小到大)它们前面的元素
比如226小于230  就把226前面的5和230前面的2调换
最后只保留2,2,4,5,7,逗号的排序结果

求解

作者: jimye0526    时间: 2014-5-25 19:13
有偿多少,可以找我
399260802
作者: 冷月无痕    时间: 2014-5-25 19:13
2,220,2,230,4,247,5,226,7,242
既然是分组的 最好用不同的分隔符 比如
2,220;2,230;4,247;5,226;7,242
这样比较好算
如果一定要这样的话...就麻烦很多了

作者: zajanmy    时间: 2014-5-25 19:21
本帖最后由 zajanmy 于 2014-5-25 19:24 编辑
冷月无痕 发表于 2014-5-25 19:13
2,220,2,230,4,247,5,226,7,242
既然是分组的 最好用不同的分隔符 比如
2,220;2,230;4,247;5,226;7,242

2,220;2,230;4,247;5,226;7,242这样也行    但即使这样我也没思路啊。。
作者: rainshine    时间: 2014-5-25 19:57
pascal程序设计 呢本书上貌似还有这个 是个学生成绩排序- -。
作者: zajanmy    时间: 2014-5-25 20:11
本帖最后由 zajanmy 于 2014-5-25 20:17 编辑
rainshine 发表于 2014-5-25 19:57
pascal程序设计 呢本书上貌似还有这个 是个学生成绩排序- -。

TC的遍历语句貌似不直接支持步长为2...而且步长在遍历()里不好省略。。总而言之TC的遍历 我赶脚不强悍啊。。   所以  大大你说的参考  我用TC无法模仿。。
作者: zajanmy    时间: 2014-5-25 20:12
jimye0526 发表于 2014-5-25 19:13
有偿多少,可以找我
399260802

你要多少?太多没意思
作者: jimye0526    时间: 2014-5-25 21:25
本帖最后由 jimye0526 于 2014-5-25 21:28 编辑

  1.     变量 原始字符串, 数组大小 = 0, 计次, 计次1, 排序后的字符串
  2.     变量 原始字符组 = 数组[0], 字符组 = 数组[0], 排序字符组 = 数组[0]
  3.    
  4.     原始字符串= "2,220,2,230,4,247,5,226,7,242,逗号,235"
  5.     字符串.分割(原始字符串, ",", 原始字符组)
  6.     数组空间.大小(原始字符组, 数组大小)
  7.    
  8.     遍历(计次=0; 计次<数组大小; 计次++)
  9.         如果(计次%2 == 0)
  10.             数组空间.增加(字符组, 原始字符组[计次] & "," & 原始字符组[计次+1], 1)
  11.         否则
  12.             数组空间.增加(排序字符组, 原始字符组[计次], 1)
  13.         如果结束
  14.     遍历结束
  15.    
  16.     数组空间.排序(排序字符组, 2)
  17.    
  18.     遍历(计次=0; 计次<数组大小/2; 计次++)
  19.         遍历(计次1=0; 计次1<数组大小/2; 计次1++)
  20.             如果(字符串.查找字符串(字符组[计次1], "," & 排序字符组[计次]) > -1)
  21.                 排序后的字符串 = 排序后的字符串 & 字符串.左侧(字符组[计次1], 字符串.查找字符串(字符组[计次1], ",") ) & ","
  22.             如果结束
  23.         遍历结束
  24.     遍历结束
  25.    
  26.     字符串.移除(排序后的字符串, 1, 假)
  27.    
  28.     调试输出(排序后的字符串)
复制代码

随便给你写了个,你的例子是能可以排序的,不过如果第二个数字字符(就是220,230,247这些)是出现相等的数字,排序就会出现错误的。

如果这个对你有用的话,你的有偿就打过来吧,支付宝:291435773@qq.com


作者: cylhb    时间: 2014-5-25 21:30
分割,然后按冒泡算法写一下,注意一下比较的位置和最后要保存的数字的位置就好了
作者: zajanmy    时间: 2014-5-25 22:10
jimye0526 发表于 2014-5-25 21:25
随便给你写了个,你的例子是能可以排序的,不过如果第二个数字字符(就是220,230,247这些)是出现相等的数字 ...

大大你回慢了。。我找群里的人(论坛里的,昵称q273814)解决了。。也打款给他了。。。。我说的是实话  
作者: zajanmy    时间: 2014-5-25 22:15
本帖最后由 zajanmy 于 2014-5-26 08:52 编辑
  1. <p>namespace 冒泡排序</p><p>function start_click()
  2.     edit.settext("edit1",冒泡排序.start(edit.gettext("edit0")))
  3. endfunction</p><p>function start(String)//传入需处理的字符串
  4.     var arr0,arr0_count
  5.     str.split(String,",",arr0)//按逗号分隔返回给arr0
  6.     arraysp.size(arr0,arr0_count)//计算arr0数组大小
  7.     if(arr0_count%2==1)//判断元素个数是否是偶数个
  8.         help.messagebox(statictext.gettext("StaticCountError"))
  9.     endif
  10.     count = arr0_count/2//元素个数除以2给count
  11.     arr1 = array[2][count] //arr1[2][元素个数/2],元素个数等于arr0的元素个数
  12.     for(i=0;i<arr0_count;i++)
  13.         if(i%2==0)//i为偶数
  14.             j = i/2   
  15.             arr1[0][j] = arr0[i]
  16.             else   //i为奇数
  17.                 j = i/2-0.5
  18.                 arr1[1][j] = arr0[i]
  19.             endif
  20.         endfor
  21.         for(i=0;i<count;i++)
  22.             for(j=0;j<count-i-1;j++)
  23.                 if( arr1[1][j]>arr1[1][j+1])
  24.                     冒泡排序.changevar(arr1[0][j],arr1[0][j+1])
  25.                     冒泡排序.changevar(arr1[1][j],arr1[1][j+1])
  26.                 endif
  27.             endfor
  28.         endfor
  29.         ret
  30.         for(i=0;i<count;i++)
  31.             ret &= arr1[0][i]
  32.         endfor
  33.         return ret
  34.     endfunction
  35.    
  36. function changevar(&var1,&var2)
  37.     temp = var1
  38.     var1 = var2
  39.     var2 = temp
  40. endfunction</p><p>endnamespace
  41. //空间结束</p>
复制代码


作者: zajanmy    时间: 2014-5-26 08:52
zajanmy 发表于 2014-5-25 22:15

有</p>  自己处理一下




欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1