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

时间:2015-07-22 10:12:15

标签: c string

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

V

#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; } 的输出是:

DNA含有多少蛋白质:5

agcta

有什么问题?

1 个答案:

答案 0 :(得分:4)

在您的代码中,

 rDnaPtn[i] = "t";

应该是

rDnaPtn[i] = 't';

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

之后,

  • 不要忘记空终止目标数组。
  • scanf("%s",&dnaPtn);可以重写为scanf("%s",dnaPtn);
  • 不要遍历整个数组。利用strlen()

启用编译器警告。