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