反转互补
发表在C语言图书答疑 2016-03-29
是否精华
版块置顶:
请问如何用c语言实现序列的反转互补,比如ATGCGTAC,反转就是CATGCGTA,互补就是GTACGCAT,也就是说A换成T,G换成C.本人是生物物理专业学生,所以是有关氨基酸序列的处理.跪求各位大神们帮忙解答,最好是有完整程序,不胜感激!谢谢
分享到:
精彩评论 3
大麦571
学分:1 LV1
2016-03-30
沙发
你好,读者,我给你提供个群,你可以把你的问题在群中和大家分享一下,说不定有读者能帮你解决这个问题的 
大麦571
学分:1 LV1
2016-03-30
板凳
 VC/C/C++技术交流群:365354473
YKG
学分:0 LV1
2016-03-31
地板
#include<stdio.h>
#include<malloc.h>
void fun1(char*p,int n){
   char *q=p,temp;int i;
   for( i=0;i<n/2;i++){
   temp=q[i];
   q[i]=q[n-i-1];
   q[n-i-1]=temp;
   }
}
void fun2(char*p,int n){
  int i;
  for(i=0;i<n;i++){
  if(p[i]=='T')
  p[i]='A';
  else if(p[i]=='A')
  p[i]='T';
  else if(p[i]=='C')
  p[i]='G';
  else 
  p[i]='C';
  }
}
void main()
{  int n,i,flag=1;char *p,*q,c;

while(flag){
printf("输入序列元素个数:");
scanf("%d",&n);
      p=(char*)malloc(n*sizeof(char));
      q=(char*)malloc(n*sizeof(char));
  printf("输入%d个元素:",n);
  scanf("%c",&c);
  for(i=0;i<n;i++){scanf("%c",&p[i]);q[i]=p[i];}
  printf("原序列为:");
  for(i=0;i<n;i++)
  printf("%c",p[i]);
  printf("\n");
  printf("反转操作后序列为:");
fun1(p,n);
      for(i=0;i<n;i++)
  printf("%c",p[i]);
  printf("\n");
fun2(q,n);
  printf("互补操作后序列为:");
      for(i=0;i<n;i++)
  printf("%c",q[i]);
  printf("\n");
      printf("输入1继续测试,输入0退出应用程序:");
  scanf("%d",&flag);
      if(!flag)
  break;
}
  free(p);
  free(q);
}
以上是我的实现方法,如有不足的地方请指出,谢谢!
首页上一页 1 下一页尾页 3 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照