运动员分组问题 C

[复制链接]
查看11 | 回复1 | 2011-5-16 10:45:26 | 显示全部楼层 |阅读模式
有N个人参加100米短跑比赛。跑道为8条。程序的任务是按照尽量使每组的人数相差最少的原则分组。
假如:
N=8时,分成1组即可。
N=9时,分成2组:一组5人,一组4人。
N=25时,分成4组:7、6、6、6.
请编程计算分组数字。邀请从键盘输入一个正整数(1-100之间,不必考虑输入错误的情况),表示参赛的运动员数。程序输出每个分组的人数。从大到小顺序输出,每个数字一行。例如:
用户输入:25
程序输出:
7
6
6
6
回复

使用道具 举报

千问 | 2011-5-16 10:45:26 | 显示全部楼层
#includestdio.h
#defineMAX_TEAM100//定义最多可分的组数
#defineTRACK_NUM8//定义跑道数
intpersonOfTeam[MAX_TEAM];
voidmain()
{
        intpersonNum;
        intteamNum;
        intremainder;
        inti;

        printf(\"输入人数:\");
        scanf(\"%d\",
        teamNum=(personNum/TRACK_NUM)(personNum%TRACK_NUM);
        for(i=0;iteamNum;i)
        {
                personOfTeam=personNum/teamNum;
        }
        remainder=personNum%teamNum;
        for(i=0;iremainder;i)//序号小于余数的组数人数加1
        {
                personOfTeam;
        }

        printf(\"各组人数:\\n\");
        for(i=0;iteamNum;i)
        {
                printf(\"%d\\n\",personOfTeam);
        }
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行