C语言作业《人类基因函数》求解,可能会用到二维数组、链表、文件等技术,求高手解答,重金悬赏!

我有350财富,解答如果好用,全部送出!
这是我的C语言作业:
输入任意两个由ATCG组成的基因(如ATT和CAA),按下图的对应法则算出两个基因的相似度(如ATT和CAA 就是(-1)+ (-1) +(-1)=-3 )

若两个基因不一样长(如ATTG和CAA),则用“-”将空缺位补齐。由于补齐空缺位有多种方法(如可将CAA补成- CAA 、 C-AA 、CA-A、 CAA- ),当计算不等长基因相似度时,选取相似度最大的一种情况作为两个基因的相似度。
作业要求是:操作时输入第一个基因,按回车,输入第二个基因,按回车,输出相似度。
A T C G -
A 5 -1 -2 -1 -3
T -1 5 -3 -2 -4
C -2 -3 5 -2 -2
G -1 -2 -2 5 -1
- -3 -4 -2 -1 0
抱歉图片发不上来,这是对应得分表
以下链接是我做失败的残次品,也许可以提供一点帮助
http://hi.baidu.com/贪狼先生/blog/item/2df1123099f73739ebc4af93.html

第1个回答  2012-05-09
主要在补齐这一部分呗。
不考虑基因无限长的情况的话,你定义一个足够大的数组,比如char gene[1000],然后再定义一个int表示你需要补齐到的长度。
然后呢,用循环吧。

干了……你这个难度略高啊……
查表可以专门做一个函数,其实也不难,难点还是在生成不充式上,对吧……
不过关于这个我还真是没有什么好办法想到……
第2个回答  2012-05-17
楼主你好。这道题我看了看,网上有的基本都是DP解法,但是所有的解答程序貌似输入
ATT
CAA
返回的结果都是-1,所以可能不对。
我写了个递归回溯的程序,思路都写在注释里了.。
我用这些数据测了测都没什么问题(括号中的是输出)
ATCC
AT
(2)
CATT
A
(-1)
AGTGATG
GTTAG
(14)
AGCTATT
AGCTTTAAA
(21)
代码已发送至你的邮箱里了,请查收参考,希望能帮助你解决你的问题。
祝好本回答被提问者采纳
第3个回答  2012-05-14
你给我留个邮箱,我把我写的程序发给你追问

[email protected]

哥们,速度阿!下星期就要交了!

第4个回答  2012-05-11
相似度怎么算?就把各个位的相似度加起来?追问

没错,各各位对应得分的总和

相似回答