#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);
}
以上是我的实现方法,如有不足的地方请指出,谢谢!