此代码应该记下每个字符,看看它的' A'或者' T'。然后,如果需要一个' A'它应该忽略下一个A'字符,直到它需要一个' T'。它有点像匹配A'和' T'像dna链。
在while
循环中,我期望在每个循环中它将需要另一个(下一个)char,但switch
satatement只运行一次。
我该如何修复?
#include <stdio.h>
int main(){
int a=0, t=0, i=0; //definitions
char c;
c = getchar();
//only the first 25 characters will be processed.
while (i < 25){
switch (c){
case 'A':
a++;
break;
case 'T':
t++;
break;
}
if (a > t+1){
c = c - 'A';
a--;
}
if (t > a+1){
c = c - 'T';
t--;
}
i++;
}
putchar(c);
return 0;
}
答案 0 :(得分:0)
我没有纠正它的对齐和所有。只是逻辑
#include <stdio.h>
int main()
{
int a=0,t=0,i=0; //definitions
char c;
while (i<25){ //only the first 25 characters will be processed.
c = getchar(); // Moved getchar() inside While
switch (c){
case 'A': a++;
break;
case 'T': t++;
break;
}
if (a>t+1){
c = c - 'A';
a--;
}
if (t>a+1){
c = c - 'T';
t--;
}
i++;
putchar(c); //Moved to inside while
}
return 0;
}