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



#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
linkang1024
Rank: 2
等 级:论坛游民
帖 子:90
专家分:83
注 册:2011-10-10
收藏
得分:3 
弱弱地问下  你的break  干什么用的?
2012-10-22 13:55
jk_love
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:196
专家分:965
注 册:2012-10-22
收藏
得分:3 
回复 楼主 mmrx
不是没有运行,是被break出去了,没打印而已
2012-10-22 14:29
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
jamewhite
Rank: 1
等 级:新手上路
帖 子:1
专家分:2
注 册:2012-10-22
收藏
得分:3 
你的头文件名里面还要添加#include<string.h> 否则无法用strlen()函数。而且你第四部分上面那个printf("%c",mrna[]);也要改 改成mrna[0].关于你的那个两个if 是不是应该放在一起以后再break
2012-10-22 16:09
zwm0225
Rank: 1
等 级:新手上路
帖 子:5
专家分:2
注 册:2012-10-12
收藏
得分:3 
首先缺头文件#include<string.h> ,其次printf("%c",mrna[])改成
for(i=0;i<=length-1;i++)
    {
     printf("%c",mrna[i]);
    }
最后在第三部分缺了个}。
2012-10-22 16:37
mmrx
Rank: 2
等 级:论坛游民
帖 子:42
专家分:71
注 册:2012-10-18
收藏
得分:0 
回复 7楼 jamewhite
嗯,谢谢。我一开始没有用那个头文件...现在改过来了
第四部分我又完全改了,因为我发现格式几乎都不对...所以可以忽略。
我是想问一下我在第三部分里面,关于字符数组mrna【】的赋值的用法是不是不对。
2012-10-22 16:40
别时茫茫
Rank: 2
来 自:安徽蚌埠
等 级:论坛游民
威 望:1
帖 子:29
专家分:72
注 册:2011-10-5
收藏
得分:3 
哎呦,一看这程序这么复杂,我就不想看啦
2012-10-22 17:18
快速回复:今天刚刚看了数组...就做了老师留的实验...但是发现很多不懂的,想问一 ...
数据加载中...
 
   



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

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