帮忙找一下错呗

黛_柒柒 2011-11-26 09:40:33
能不能帮我看看这个程序错在哪里为什么不能显示氨基酸啊




#include <stdio.h>
#include <stdlib.h>
#define N 100
int main()
{
int i,j,k,m;
char DNA1[N],DNA2[N],mRNA[N];
printf ("请输入DNA单链序列:\n");
gets(DNA1);
printf ("输入的DNA单链为: ");
for (i=0;DNA1[i]!='\0';i++)
{
printf ("-%c",DNA1[i]);
}
printf ("-\n");


printf ("对应的DNA单链为:");
for (j=0;j<i;j++)
{
switch (DNA1[j])
{
case 'A':
DNA2[j] = 'T';
break;
case 'T':
DNA2[j] = 'A';
break;
case 'G':
DNA2[j] = 'C';
break;
case 'C':
DNA2[j] = 'G';
break;
}
printf ("-%c",DNA2[j]);
}
printf ("-\n");


printf ("转录生成mRNA为:");
for (k=0;k<i;k++)
{
switch (DNA1[k])
{
case 'A':
mRNA[k] = 'T';
break;
case 'T':
mRNA[k] = 'A';
break;
case 'G':
mRNA[k] = 'C';
break;
case 'C':
mRNA[k] = 'G';
break;
}
printf ("-%c",mRNA[k]);
}
printf ("-\n");

printf ("翻译合成的蛋白质的氨基酸为:\n");
for (m=0;m<i;m=m+3)
{
if (mRNA[m]=='U'&&mRNA[m+1]=='U'&&(mRNA[m+2]=='U'||mRNA[m+2]=='C'))
{
printf ("-苯丙氨酸");
}
else if (mRNA[m]=='U'&&mRNA[m+1]=='U'&&(mRNA[m+2]=='A'||mRNA[m+2]=='U' ))
{
printf ("-亮氨酸");
}
else if (mRNA[m]=='A'&&mRNA[m+1]=='U'&&(mRNA[m+2]=='C'||mRNA[m+2]=='A'))
{
printf ("-异亮氨酸");
}
else if (mRNA[m]=='A'&&mRNA[m+1]=='U'&&mRNA[m+2]=='G')
{
printf ("-甲硫氨酸");
}
else if (mRNA[m]=='G'&&mRNA[m+1]=='U')
{
printf ("-缬氨酸");
}
else if (mRNA[m]=='U'&&mRNA[m+1]=='C')
{
printf ("-丝氨酸");
}
else if (mRNA[m]=='C'&&mRNA[m+1]=='C')
{
printf ("-脯氨酸");
}
else if (mRNA[j]=='A'&&mRNA[m+1]=='C')
{
printf ("-苏氨酸");
}
else if (mRNA[m]=='G'&&mRNA[m+1]=='C')
{
printf ("-丙氨酸");
}
else if (mRNA[m]=='U'&&mRNA[m+1]=='A'&&(mRNA[m+2]=='U'||mRNA[m+2]=='C'))
{
printf ("-酪氨酸");
}
else if (mRNA[m]=='C'&&mRNA[m+1]=='A'&&(mRNA[m+2]=='U'||mRNA[m+2]=='C'))
{
printf ("-组氨酸");
}
else if (mRNA[m]=='C'&&mRNA[m+1]=='A'&&(mRNA[m+2]=='A'||mRNA[m+2]=='G'))
{
printf ("-谷氨酰胺");
}
else if (mRNA[m]=='A'&&mRNA[m+1]=='A'&&(mRNA[m+2]=='U'||mRNA[m+2]=='C'))
{
printf ("-天冬酰胺");
}
else if (mRNA[m]=='A'&&mRNA[m+1]=='A'&&(mRNA[m+2]=='A'||mRNA[m+2]=='G'))
{
printf ("-赖氨酸");
}
else if (mRNA[m]=='G'&&mRNA[m+1]=='A'&&(mRNA[m+2]=='U'||mRNA[m+2]=='C'))
{
printf ("-天冬氨酸");
}
else if (mRNA[m]=='G'&&mRNA[m+1]=='A'&&(mRNA[m+2]=='G'||mRNA[m+2]=='A'))
{
printf ("-谷氨酸");
}
else if (mRNA[m]=='U'&&mRNA[m+1]=='G'&&(mRNA[m+2]=='U'||mRNA[m+2]=='C'))
{
printf ("-半胱氨酸");
}
else if (mRNA[m]=='U'&&mRNA[m+1]=='G'&&mRNA[m+2]=='G')
{
printf ("-色氨酸");
}
else if ((mRNA[m]=='A'&&mRNA[m+1]=='G'&&(mRNA[m+2]=='A'||mRNA[m+2]=='G'))||(mRNA[m]=='C'&&mRNA[m+1]=='G'))
{
printf ("-精氨酸");
}
else if (mRNA[m]=='A'&&mRNA[m+1]=='U'&&(mRNA[m+2]=='G'||mRNA[m+2]=='C'))
{
printf ("-丝氨酸");
}
else if (mRNA[m]=='G'&&mRNA[m+1]=='G')
{
printf ("-甘氨酸");
}
else
{
break;
}
}
printf ("-\n");
printf ("请按任意键继续...");

return 0;
}
...全文
78 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
黛_柒柒 2011-11-26
  • 打赏
  • 举报
回复
黛_柒柒 2011-11-26
  • 打赏
  • 举报
回复
我是指运行时没有输出任何氨基酸
YYBYYB1984 2011-11-26
  • 打赏
  • 举报
回复
呵呵,这样写自然费眼神
暖枫无敌 2011-11-26
  • 打赏
  • 举报
回复
最后一个输出氨基酸吧

else if (mRNA[m]=='G'&&mRNA[m+1]=='G')
{
printf ("-甘氨酸");
}
else
{
printf ("-氨基酸");
// break;
}
熙风 2011-11-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jelly1989 的回复:]
因为循环里的一大坨根本就没有“氨基酸”,不信你查找一下。
[/Quote]

还确实,,LS的真是要眼力
  • 打赏
  • 举报
回复
因为循环里的一大坨根本就没有“氨基酸”,不信你查找一下。
Aspx_hkx 2011-11-26
  • 打赏
  • 举报
回复
和C#.NET有什么关系?
黛_柒柒 2011-11-26
  • 打赏
  • 举报
回复
你们好像没懂我的意思 甘氨酸 甲硫氨酸……都属于氨基酸 我希望在程序运行时能显示出这些氨基酸但是程序没有执行最后的for语句里德内容 帮帮我吧 晚上要交作业……

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧