| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 636 人关注过本帖
标题:产生随机序列的问题,向各位高手请教!
只看楼主 加入收藏
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
呵呵,没关系,既然你喜欢这种方式,再给你写一个好了。

程序代码:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<malloc.h>

int random(int max)
{
    return ((rand() << 16)|((rand() & 1) << 15)|rand()) % max;
}

int main()
{
    int n, a, c, t, g, i, j;
    double d;
    char * s, tmp;
    FILE *fo;
    
    srand(time(NULL));
    
    do{
        printf("输入序列长度:");
        scanf("%d", &n);
    }while(n <= 0);
    do{
        printf("输入A的百分占比:");
        scanf("%lf", &d);
        a = (int)(d / 100 * n + 0.5);
    }while(d < 0 || a > n);
    do{
        printf("输入C的百分占比:");
        scanf("%lf", &d);
        c = (int)(d / 100 * n + 0.5);
    }while(d < 0 || a + c > n);
    do{
        printf("输入T的百分占比:");
        scanf("%lf", &d);
        t = (int)(d / 100 * n + 0.5);
    }while(d < 0 || a + c + t > n );
    g = n - a - c - t;

    if(!(s = (char *)malloc(n + 1))) return 0;

    for(i = 0; a--; s[i++] = 'A');
    for(; c--; s[i++] = 'C');
    for(; t--; s[i++] = 'T');
    for(; g--; s[i++] = 'G');
    s[n] = '\0';

    for(i = 0; i < n; i++)
    {
        j = random(n);
        tmp = s[i];
        s[i] = s[j];
        s[j] = tmp;
    }
    
    if(!(fo = fopen("out.txt", "w")))
    {
        puts("无法创建文件out.txt\n");
        free(s);
        return 0;
    }
    
    fputs(s, fo);
    fclose(fo);
    free(s);
    return 0;
}

重剑无锋,大巧不工
2013-11-17 23:02
zhou31146001
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:303
专家分:131
注 册:2012-11-28
收藏
得分:0 
谢谢您,这么晚了还帮我编出了程序,而且运行的很好,非常感谢!!
谢谢!!!
2013-11-18 11:29
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
举手之劳,不必客气。

重剑无锋,大巧不工
2013-11-18 20:44
快速回复:产生随机序列的问题,向各位高手请教!
数据加载中...
 
   



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

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