| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 663 人关注过本帖
标题:今天刚刚看了数组...就做了老师留的实验...但是发现很多不懂的,想问一下这 ...
取消只看楼主 加入收藏
mmrx
Rank: 2
等 级:论坛游民
帖 子:42
专家分:71
注 册:2012-10-18
结帖率:60%
收藏
已结贴  问题点数:15 回复次数:4 
今天刚刚看了数组...就做了老师留的实验...但是发现很多不懂的,想问一下这个程序为什么第四部分不能运行...怎么解决呢?
程序代码:



#include <stdio.h>
#include <stdlib.h>

int main()
{
    char dna[200];
    char mrna[200];
    int length;
    int i;

    printf("请输入DNA单链序列(大写字母):\n");
    gets(dna);

    length = strlen(dna);
    printf("%d\n",length);
    printf("%s\n",dna);

/*第一部分,输出标准格式的DNA单链*/

    printf("您所输入的DNA单链为:");

    for(i = 0;i <= length-1 ; i++)
    {
        printf("-%c",dna[i]);
    }
    printf("-");
    putchar('\n');

/*第二部分,输出对应的互补DNA单链*/

    printf("其所对应的DNA单链为: ");

    for(i = 0; i <=length-1 ; i++)
    {
        if( dna[i] == 'A')
        printf("-T");
        mrna[i] = 'T';
        if( dna[i] == 'T')
        printf("-A");
        if( dna[i] == 'G')
        printf("-C");
        if( dna[i] == 'C')
        printf("-G");
    }
    printf("-");
    putchar('\n');

/*第三部分,输出对应的mRNA序列*/
    printf("对应的mRNA序列为:   ");
    for(i = 0; i <= length-1 ; i++)
    {
        if( dna[i] == 'T')
        {
            printf("-A");
            mrna[i] = 'A';
        }
        if( dna[i] == 'A')
        {
            printf("-U");
            mrna[i] = 'U';
        if( dna[i] == 'G')
        {
            printf("-C");
            mrna[i] = 'C';
        }
        if( dna[i] == 'C')
        {
            printf("-G");
            mrna[i] = 'G';
        }
    }
    printf("-");
    putchar('\n');
    printf("%c",mrna[]);

/*第四部分,输出氨基酸顺序*/

    printf("翻译合成的蛋白质的氨基酸序列为: \n");
    for( i = 0; i <= length-4 ; i++)
    {
        if( mrna[i] == 'U' && mrna[i+1] == 'U' && (mrna[i+2] == 'U' || mrna[i+2] == 'C'))
        printf("-苯丙氨酸");
        if( mrna[i] == 'U' && mrna[i+1] == 'U' && (mrna[i+2] == 'A' || mrna[i+2] == 'G'))
        printf("-亮氨酸");
        if( mrna[i] == 'U' && mrna[i+1] == 'C' && (mrna[i+2] == 'U' || mrna[i+2] == 'C' || mrna[i+2] == 'A' || mrna[i+2] == 'G'))
        printf("-丝氨酸");
        if( mrna[i] == 'U' && mrna[i+1] == 'A' && (mrna[i+2] == 'U' || mrna[i+2] == 'C'))
        printf("-酪氨酸");
        if( mrna[i] == 'U' && mrna[i+1] == 'A' && (mrna[i+2] == 'A' || mrna[i+2] == 'G'))
        break;
        if( mrna[i] == 'U' && mrna[i+1] == 'G' && mrna[i+2] == 'A')
        break;
        if( mrna[i] == 'U' && mrna[i+1] == 'G' && (mrna[i+2] == 'U' || mrna[i+2] == 'C'))
        printf("-半胱氨酸");
        if( mrna[i] == 'U' && mrna[i+1] == 'G' && mrna[i+2] == 'G')
        printf("-色氨酸");
        if( mrna[i] == 'C' && mrna[i+1] == 'U' && (mrna[i+2] == 'U' || mrna[i+2] == 'C' || mrna[i+2] == 'A' || mrna[i+2] == 'G'))
        printf("-亮氨酸");
        if( mrna[i] == 'C' && mrna[i+1] == 'C' && (mrna[i+2] == 'U' || mrna[i+2] == 'C' || mrna[i+2] == 'A' || mrna[i+2] == 'G'))
        printf("-脯氨酸");
        if( mrna[i] == 'C' && mrna[i+1] == 'A' && (mrna[i+2] == 'U' || mrna[i+2] == 'C'))
        printf("-组氨酸");
        if( mrna[i] == 'C' && mrna[i+1] == 'A' && (mrna[i+2] == 'A' || mrna[i+2] == 'G'))
        printf("-谷氨酰胺");
        if( mrna[i] == 'C' && mrna[i+1] == 'G' && (mrna[i+2] == 'U' || mrna[i+2] == 'C' || mrna[i+2] == 'A' || mrna[i+2] == 'G'))
        printf("-精氨酸");
        if( mrna[i] == 'A' && mrna[i+1] == 'U' && (mrna[i+2] == 'U' || mrna[i+2] == 'C' || mrna[i+2] == 'A'))
        printf("-异亮氨酸");
        if( mrna[i] == 'A' && mrna[i+1] == 'U' && mrna[i+2] == 'G')
        printf("-甲硫氨酸");
        if( mrna[i] == 'A' && mrna[i+1] == 'C' && (mrna[i+2] == 'U' || mrna[i+2] == 'C' || mrna[i+2] == 'A' || mrna[i+2] == 'G'))
        printf("-苏氨酸");
        if( mrna[i] == 'A' && mrna[i+1] == 'A' && (mrna[i+2] == 'U' || mrna[i+2] == 'C'))
        printf("-天冬酰胺");
        if( mrna[i] == 'A' && mrna[i+1] == 'A' && (mrna[i+2] == 'A' || mrna[i+2] == 'G'))
        printf("-赖氨酸");
        if( mrna[i] == 'A' && mrna[i+1] == 'G' && (mrna[i+2] == 'U' || mrna[i+2] == 'C'))
        printf("-丝氨酸");
        if( mrna[i] == 'A' && mrna[i+1] == 'G' && (mrna[i+2] == 'A' || mrna[i+2] == 'G'))
        printf("-精氨酸");
        if( mrna[i] == 'G' && mrna[i+1] == 'U' && (mrna[i+2] == 'U' || mrna[i+2] == 'C' || mrna[i+2] == 'A' || mrna[i+2] == 'G'))
        printf("-缬氨酸");
        if( mrna[i] == 'G' && mrna[i+1] == 'C' && (mrna[i+2] == 'U' || mrna[i+2] == 'C' || mrna[i+2] == 'A' || mrna[i+2] == 'G'))
        printf("-丙氨酸");
        if( mrna[i] == 'G' && mrna[i+1] == 'A' && (mrna[i+2] == 'U' || mrna[i+2] == 'C'))
        printf("-天冬氨酸");
        if( mrna[i] == 'G' && mrna[i+1] == 'A' && (mrna[i+2] == 'A' || mrna[i+2] == 'G'))
        printf("-谷氨酸");
        if( mrna[i] == 'G' && mrna[i+1] == 'U' && (mrna[i+2] == 'U' || mrna[i+2] == 'C' || mrna[i+2] == 'A' || mrna[i+2] == 'G'))
        printf("-甘氨酸");


    }
return 0;


}

是不是那个mrna[]用错了?该怎么用,才能给它赋值?
搜索更多相关主题的帖子: color 
2012-10-21 23:50
mmrx
Rank: 2
等 级:论坛游民
帖 子:42
专家分:71
注 册:2012-10-18
收藏
得分:0 
求助啊。。。
2012-10-22 12:44
mmrx
Rank: 2
等 级:论坛游民
帖 子:42
专家分:71
注 册:2012-10-18
收藏
得分:0 
回复 4楼 jk_love
break 只在满足那两个if后才跳出循环啊,只要用户输入的碱基对序列是终止密码子才执行的。我想知道能不能在先申明了字符数组mrna【200】之后再对其按照程序中的格式赋值?
2012-10-22 15:58
mmrx
Rank: 2
等 级:论坛游民
帖 子:42
专家分:71
注 册:2012-10-18
收藏
得分:0 
回复 3楼 linkang1024
输入DNA序列后,对应的mRNA序列是终止密码子就跳出循环,终止密码子就是那两个if语句中的。
2012-10-22 15:59
mmrx
Rank: 2
等 级:论坛游民
帖 子:42
专家分:71
注 册:2012-10-18
收藏
得分:0 
回复 7楼 jamewhite
嗯,谢谢。我一开始没有用那个头文件...现在改过来了
第四部分我又完全改了,因为我发现格式几乎都不对...所以可以忽略。
我是想问一下我在第三部分里面,关于字符数组mrna【】的赋值的用法是不是不对。
2012-10-22 16:40
快速回复:今天刚刚看了数组...就做了老师留的实验...但是发现很多不懂的,想问一 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021964 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved