| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 383 人关注过本帖
标题:解一道题目 谢谢
只看楼主 加入收藏
S030902508
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2010-10-19
结帖率:25%
收藏
已结贴  问题点数:10 回复次数:1 
解一道题目 谢谢
http://acm.fzu.  我做出来的总是超时。
2010-10-21 22:04
pbreak
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:83
专家分:558
注 册:2007-5-10
收藏
得分:10 
程序代码:
#include<stdio.h>
#include<stdlib.h>
#include <memory.h>

#define  SIZE_NODE 100
#define  SIZE_BLOCK 15

void main()
{
    int n = 0, m = 0;
    printf("请输入 节点数(小于等于%d的正整数):",SIZE_NODE);
    scanf("%u", &n);
    while ( n > SIZE_NODE )
    {
        printf("节点数超出了范围!\n");
        printf("请输入 节点数(小于等于%d的正整数):",SIZE_NODE);
        scanf("%u", &n);
        fflush(stdin);
    }
    fflush(stdin);
    printf("请输入文件块数(小于等于%d的正整数):",SIZE_BLOCK);
    scanf("%u", &m);
    while ( m > SIZE_BLOCK )
    {
        printf("文件块数超出了范围!\n");
        printf("请输入文件块数(小于等于%d的正整数):",SIZE_BLOCK);
        scanf("%u", &m);
        fflush(stdin);
    }
    printf("\n节点数:%d,文件块数:%d\n",n,m);

    /*动态分配二维数组*/
    bool isFormatErr = false; //判断格式错误
    int  max_antiFactor = 0; //最大反分布式系数
    int  dist_coefficient = 0; //分布式系数
    int  *antiFactor_arrary = (int*)malloc(sizeof(int)*m); //反分布式系数数组
    memset(antiFactor_arrary, 0, m*sizeof(antiFactor_arrary));//初始化数组值为0
    char **node_array = (char**) malloc(sizeof(char *)*n);//节点数组
    for ( int i = 0; i < n; ++i)
    {
        node_array[i]=(char *)malloc(sizeof(char)*m);
        do
        {
            printf("请输入第%d个节点(%d位0 1数):",i+1,m);
            fflush(stdin);
            scanf("%s",node_array[i]);
            for (int j = 0 ; j < m ; ++j)
            {
                if (node_array[i][j] != '0' && node_array[i][j] != '1')
                {
                    isFormatErr = true;
                    printf("第%d个节点输入了非0 1的非法字符!请重新输入\n",i+1);
                    break;
                }
            }
            if ( j == m )
            {
                for (j = 0 ; j < m ; ++j)
                {
                    if (node_array[i][j] == '0')
                        antiFactor_arrary[j]++;       
                }
                isFormatErr = false;
            }
        } while (isFormatErr);

    }
    printf("\n%d %d\n",n,m);
    for ( i = 0; i < n; ++i)
    {
        printf("%s\n",node_array[i]);
        free(node_array[i]);
    }

    max_antiFactor = antiFactor_arrary[0];
    for (int j = 1 ; j < m ; ++j)
    {
        if (antiFactor_arrary[j] > max_antiFactor)
            max_antiFactor = antiFactor_arrary[j];
    }
    dist_coefficient = n - max_antiFactor;
    printf("分布式系数为:%d\n",dist_coefficient);
    free(antiFactor_arrary);
    free(node_array);

}



[ 本帖最后由 pbreak 于 2010-10-22 10:38 编辑 ]
2010-10-22 10:17
快速回复:解一道题目 谢谢
数据加载中...
 
   



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

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