gpt4 book ai didi

c - 读取字符时 Switch 语句无法按预期工作

转载 作者:行者123 更新时间:2023-11-30 21:07:40 25 4
gpt4 key购买 nike

这段代码应该获取每个字符并查看它是“A”还是“T”。然后,如果它需要一个“A”,它应该忽略下一个“A”字符,直到它需要一个“T”。这有点像像 DNA 链一样匹配“A”和“T”。

while 循环中,我期望在每个循环中它将采用另一个(下一个)字符,但 switch 状态仅工作一次。

我该如何修复这个问题?

#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;
}

最佳答案

我没有更正它的对齐方式等等。只是逻辑

#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;
}

关于c - 读取字符时 Switch 语句无法按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42715676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com