Jeezy7 2021-06-23 22:35 采纳率: 80%
浏览 92
已结题

c语言世界杯小组赛分组尽量200行以上代码

可以添加一些赛程安排之类的增加代码量

英格兰、法国、德国、意大利、西班牙、荷兰、葡萄牙、克罗地亚、土耳其、俄罗斯、瑞典、捷克、塞尔维亚、加纳、科特迪瓦、突尼斯、尼日利亚、喀麦隆、日本、韩国、澳大利亚、伊朗、美国、墨西哥、哥斯达黎加、洪都拉斯、巴西、阿根廷、巴拉圭、智利、乌拉圭、厄瓜多尔。世界杯的小组分组规则如下:有八只种子球队,分别是:乌拉圭队、西班牙队、德国队、阿根廷队、哥伦比亚队、比利时队、瑞士队以及东道主巴西队。这八只球队一定分别在A-----H八个组中(八只球队不能碰面)。小组分为A------H一共八个小组。分组结果按行输出。每个小组四个球队。(参考循环赛)

急救!!!

  • 写回答

3条回答 默认 最新

  • CSDN专家-sinJack 2024-01-28 00:04
    关注
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    #define T League
    typedef struct T *T;
    #define TreeHeigh 5
    char *Other[] = {"英格兰","意大利","葡萄牙","克罗地亚","土耳其","瑞典","捷克","塞尔维亚","加纳","科特迪瓦","突尼斯","尼日利亚","喀麦隆","日本","韩国","澳大利亚","伊朗","美国","墨西哥","哥斯达黎加","洪都拉斯","巴拉圭","智利","厄瓜多尔"};
    char *Send[] = { "乌拉圭","西班牙","德国","阿根廷","荷兰","法国","巴西","俄罗斯"};
    int F_Send[ 8 ];
    int F_Other[ 24 ];
    struct T{
        int Score;
        int Heigh;
        T Left;
        T Right;
        char *Name;
    };
    void INIT( T *Root, int Heigh );
    void Print( T Root );
    int main( void )
    {
        T Root;
        int heigh;
        heigh = 0;
        Root = NULL;
        INIT( &Root, heigh );
        Print( Root );
        return 0;
    }
    void INIT( T *Root, int Heigh )
    {
        int f;
        static int g = -1;
        srand( ( unsigned )time( NULL ) );    
        if( NULL == *Root )
        {
            T new = ( T )malloc( sizeof( struct T ) );
            if( NULL == new )
                exit( EXIT_FAILURE );
            new->Left = NULL;
            new->Right = NULL;
            new->Name = NULL;
            new->Score = -1;
            new->Heigh = Heigh;
            *Root = new;
        }
        if( TreeHeigh == ( *Root )->Heigh )
        {
            ++g;
            if( 0 == g % 4 )
            {
                while( 1 )
                {        
                    f = rand( ) % 8;
                    if( 0 == F_Send[ f ] )
                    {
                        ( *Root )->Name = Send[ f ];
                        F_Send[ f ] = 1;
                        break;
                    }
                }
            }
            else
            {
                while( 1 )
                {
                    f = rand() % 24;
                    if( 0 == F_Other[ f ] )
                    {
                        ( *Root )->Name = Other[ f ];
                        F_Other[ f ] = 1;
                        break;
                    }
                }
            }
        }
        if( TreeHeigh == Heigh )
            return;
        INIT( &(*Root)->Left, Heigh + 1 );
        INIT( &(*Root)->Right, Heigh + 1 );
    }
    void Print( T Root )
    {
        static int g = 0;
        static char ch = 'A';
        if( NULL == Root )
            return;
        if( NULL != Root->Name )
        {
            if( 0 == g % 4 )
                printf( "%c\n", ch++);
            printf( "%s ", Root->Name );
            ++g;
            if( 0 == g % 2 )
                printf( "\n" );
        }
        Print( Root->Left );
        Print( Root->Right );
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 2月9日
  • 已采纳回答 2月1日

悬赏问题

  • ¥15 用verilog实现tanh函数和softplus函数
  • ¥15 求京东批量付款能替代天诚
  • ¥15 slaris 系统断电后,重新开机后一直自动重启
  • ¥15 51寻迹小车定点寻迹
  • ¥15 谁能帮我看看这拒稿理由啥意思啊阿啊
  • ¥15 关于vue2中methods使用call修改this指向的问题
  • ¥15 idea自动补全键位冲突
  • ¥15 请教一下写代码,代码好难
  • ¥15 iis10中如何阻止别人网站重定向到我的网站
  • ¥15 滑块验证码移动速度不一致问题