• 大小: 4.63KB
    文件类型: .c
    金币: 1
    下载: 0 次
    发布日期: 2021-03-27
  • 语言: 其他
  • 标签: 其他  

资源简介


设有n个运动员要进行网球循环赛。设计一个满足以下要求的比赛日程表,  (1)每个选手必须与其他n-1个选手各赛一次; (2) 每个选手一天只能赛一次;  (3) 当n是偶数时,循环赛进行n-1天,当n是奇数时,循环  赛进行n天

资源截图

代码片段和文件信息

#include
#include
int **A;              //int *指针数组,
int *schedule;        //int数组,一维数组保存二维数组的数据
int N = 1;            //问题的规模。初始化时会设定

//isodd:判断x是否奇数,是则返回1,否则0
int isodd(int x)
{
    return x%2;
}
//print:打印赛程
void print()
{
    int i j row col;
    if(isodd(N))
    {
        row=N;
        col=N+1;
    }
    else
    {
        row=N;
        col=N;
    }
    printf(“第1列是选手编号之后每列对应从第一天开始每天的对手,其中0表示轮空。\n“);
printf(“\t“);
for(i=1; i     printf(“第%d天 “ i);
printf(“\n“);  
    for(i=0; i    {
        for(j=0; j        {
            printf(“%6d“ A[i][j]);
        }
        printf(“\n“);
    } 
 }
/*init:初始化,设置问题规模N值,分配内存,用schedule指向;
        把A构造成一个二维数组*/
void init()
{   
    int i n;
    char line[100] = {‘\0‘};
    printf(“请输入选手人数:“);
    fgets(line sizeof(line) stdin);
    N = atoi(line);    
    if(N <= 0)  exit(-1);
    if(isodd(N))
        n = N+1;
    else
        n =

评论

共有 条评论