因此,我尝试创建序列TGAGACTTCAGGCTCCTGGGCAACGTGCTGGTCTGTGTGC的补码,但是我的输出未按预期工作。序列中每个字母的补码为
A-> T
G-> C
C-> G
T-> A
我从事Java编程已经有一年多了,所以我对C ++中的指针真的很生疏,我猜问题出在反向方法中,并且在每次调用函数时都改变了指针的方式
#include<stdio.h>
#include<iostream>
using namespace std;
void reverse(char s[]);
int main() {
char s[40] = {'T','G','A','G','A','C','T','T','C','A','G','G','C','T','C','C','T','G','G','G','C','A','A','C','G','T','G','C','T','G','G','T','C','T','G','T','G','T','G'};
cout << "DNA sequence: "<< endl << s << endl;
reverse(s);
cout << "Reverse Compliment: "<< endl << s << endl;
system("pause");
}
void reverse(char s[])
{
char c;
char *p, *q;
p = s;
if (!p)
return;
q = p + 1;
if (*q == '\0')
return;
c = *p;
reverse(q);
switch(c) { …Run Code Online (Sandbox Code Playgroud)