gpt4 book ai didi

c - DNA复制程序产生错误的输出

转载 作者:行者123 更新时间:2023-11-30 20:48:43 25 4
gpt4 key购买 nike

该代码有什么问题,我只是想替换 DNA 的碱基。:

#include <stdio.h>

int getDna(){
int i,t;
printf("How many protein does the DNA have?");
scanf("%d",&t);
char dnaPtn[t],rDnaPtn[t];
printf("Enter the DNA: ");
scanf("%s",&dnaPtn);
for(i=0;i<t;i++){
switch(dnaPtn[i]){
case 'a':
rDnaPtn[i] = "t";
break;
case 'c':
rDnaPtn[i] = "g";
break;
case 'g':
rDnaPtn[i] = "c";
break;
case 't':
rDnaPtn[i] = "a";
break;
default:
break;
}
}
printf("%s",rDnaPtn);
}

int main(){
getDna();
return 0;
}

agcta 的输出是:

DNA有多少蛋白质:5

Enter the DNA: agcta
^b'd^!!@

出了什么问题?

最佳答案

在您的代码中,

 rDnaPtn[i] = "t";

应该是

rDnaPtn[i] = 't';

因为""表示字符串,但您想要的是char类型。

之后,

  • 不要忘记以空值终止您的目标数组。
  • scanf("%s",&dnaPtn); 可以重写为 scanf("%s",dnaPtn);
  • 不要循环遍历整个数组。使用strlen()
<小时/>

启用编译器警告。

关于c - DNA复制程序产生错误的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31560190/

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